<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" class="translated-ltr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>第16章备用存储引擎</title>
		<link rel="stylesheet" href="mvl.css" type="text/css">
		<meta name="generator" content="DocBook XSL Stylesheets + chunker.py v1.9.2">
		<link rel="start" href="index.html" title="{书名}">
		<link rel="up" href="" title="">
		<link rel="prev" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎">
		<link rel="next" href="replication.html" title="第17章复制">
	 
		<link type="text/css" rel="stylesheet" charset="UTF-8" href="https://translate.googleapis.com/translate_static/css/translateelement.css">
	</head>

	<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
		<div class="navheader">
			<table width="100%" summary="Navigation header">
				<tbody>
					<tr>
						<th colspan="3" align="center">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第16章备用存储引擎</font>
							</font>
						</th>
					</tr>
					<tr>
						<td width="20%" align="left"><a accesskey="p" href="innodb-storage-engine.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">上一页</font>
								</font>
							</a>&nbsp;</td>
						<th width="60%" align="center"></th>
						<td width="20%" align="right">&nbsp;<a accesskey="n" href="replication.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">下一个</font>
								</font>
							</a></td>
					</tr>
				</tbody>
			</table>
			<hr>
		</div>
		<div class="chapter">
			<div class="titlepage">
				<div>
					<div>
						<h1 class="title"><a name="storage-engines"></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第16章备用存储引擎</font>
							</font>
						</h1>

					</div>

				</div>

			</div>
			<div class="toc">
				<p><b>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">目录</font>
						</font>
					</b></p>
				<dl class="toc"><dt><span class="section"><a href="storage-engines.html#storage-engine-setting">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.1设置存储引擎</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="storage-engines.html#myisam-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.2 MyISAM存储引擎</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="storage-engines.html#myisam-start">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.1 MyISAM启动选项</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#key-space">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.2密钥所需的空间</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#myisam-table-formats">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.3 MyISAM表存储格式</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#myisam-table-problems">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.4 MyISAM表问题</font>
										</font>
									</a></span></dt></dl>
					</dd><dt><span class="section"><a href="storage-engines.html#memory-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.3 MEMORY存储引擎</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="storage-engines.html#csv-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.4 CSV存储引擎</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="storage-engines.html#se-csv-repair">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.4.1修复和检查CSV表</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#se-csv-limitations">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.4.2 CSV限制</font>
										</font>
									</a></span></dt></dl>
					</dd><dt><span class="section"><a href="storage-engines.html#archive-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.5 ARCHIVE存储引擎</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="storage-engines.html#blackhole-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.6 BLACKHOLE存储引擎</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="storage-engines.html#merge-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.7 MERGE存储引擎</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="storage-engines.html#merge-table-advantages">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.7.1 MERGE表的优点和缺点</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#merge-table-problems">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.7.2 MERGE表问题</font>
										</font>
									</a></span></dt></dl>
					</dd><dt><span class="section"><a href="storage-engines.html#federated-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.8 FEDERATED存储引擎</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="storage-engines.html#federated-description">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.1联合存储引擎概述</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#federated-create">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.2如何创建FEDERATED表</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#federated-usagenotes">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.3联合存储引擎注释和提示</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#federated-storage-engine-resources">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.4联合存储引擎资源</font>
										</font>
									</a></span></dt></dl>
					</dd><dt><span class="section"><a href="storage-engines.html#example-storage-engine">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.9示例存储引擎</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="storage-engines.html#storage-engines-other">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.10其他存储引擎</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="storage-engines.html#pluggable-storage-overview">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.11 MySQL存储引擎体系结构概述</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="storage-engines.html#pluggable-storage">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.11.1可插拔存储引擎架构</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#pluggable-storage-common-layer">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.11.2公共数据库服务器层</font>
										</font>
									</a></span></dt></dl>
					</dd>
				</dl>
			</div>
			<a class="indexterm" name="idm140091631499280"></a><a class="indexterm" name="idm140091631497824"></a><a class="indexterm"
			 name="idm140091631496336"></a><a class="indexterm" name="idm140091631494848"></a><a class="indexterm" name="idm140091631493776"></a><a
			 class="indexterm" name="idm140091631492704"></a><a class="indexterm" name="idm140091631491632"></a><a class="indexterm"
			 name="idm140091631490560"></a><a class="indexterm" name="idm140091631489488"></a><a class="indexterm" name="idm140091631488416"></a><a
			 class="indexterm" name="idm140091631487344"></a><a class="indexterm" name="idm140091631486272"></a><a class="indexterm"
			 name="idm140091631485200"></a><a class="indexterm" name="idm140091631484112"></a>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						存储引擎是MySQL组件，用于处理不同表类型的SQL操作。</font>
				</font><a class="link" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎"><code class="literal">InnoDB</code></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">是默认的和最通用的存储引擎，Oracle建议将其用于表，除了专门的用例。</font>
					<font style="vertical-align: inherit;">（</font>
				</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
						TABLE</code></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">MySQL 8.0中</font>
					<font style="vertical-align: inherit;">的</font>
					<font style="vertical-align: inherit;">语句</font>
				</font><code class="literal">InnoDB</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">默认</font>
					<font style="vertical-align: inherit;">创建</font>
					<font style="vertical-align: inherit;">表。）
					</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						MySQL Server使用可插拔存储引擎架构，可以将存储引擎加载到正在运行的MySQL服务器中或从中卸载。
					</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						要确定服务器支持哪些存储引擎，请使用该
					</font>
				</font><a class="link" href="sql-syntax.html#show-engines" title="13.7.6.16 SHOW ENGINES语法"><code class="literal">SHOW
						ENGINES</code></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">语句。</font>
				</font><code class="literal">Support</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">列中</font>
					<font style="vertical-align: inherit;">的值</font>
					<font style="vertical-align: inherit;">表示是否可以使用引擎。</font>
					<font style="vertical-align: inherit;">的值</font>
				</font><code class="literal">YES</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">，
					</font>
				</font><code class="literal">NO</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">或</font>
				</font><code class="literal">DEFAULT</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">表示发动机可用，不可用，或可用与当前被设置为默认的存储引擎。
					</font>
				</font>
			</p>
			<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>SHOW ENGINES\G</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
*************************** 1。排******************** *******</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      引擎：PERFORMANCE_SCHEMA</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     支持：是的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     评论：性能架构</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
交易：NO</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          XA：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  保存点：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
*************************** 2.排******************** *******</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      引擎：InnoDB</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     支持：默认</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     注释：支持事务，行级锁定和外键</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
交易：YES</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          XA：是的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  保存点：是</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
*************************** 3。排******************** *******</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      发动机：MRG_MYISAM</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     支持：是的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     评论：收集相同的MyISAM表</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
交易：NO</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          XA：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  保存点：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
****************************排******************** *******</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      发动机：BLACKHOLE</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     支持：是的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     评论：/ dev / null存储引擎（你写的东西都消失了）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
交易：NO</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          XA：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  保存点：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
****************************排******************** *******</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      引擎：MyISAM</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     支持：是的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     评论：MyISAM存储引擎</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
交易：NO</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          XA：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  保存点：没有</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
...</font></font><font></font>
</pre>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						本章介绍了专用MySQL存储引擎的用例。</font>
					<font style="vertical-align: inherit;">它不</font>
					<font style="vertical-align: inherit;">包括</font><a class="xref" href="innodb-storage-engine.html" title="Chapter&nbsp;15&nbsp;The InnoDB Storage Engine">
						<font style="vertical-align: inherit;">第15章，</font>
					</a><a class="xref" href="innodb-storage-engine.html" title="Chapter&nbsp;15&nbsp;The InnoDB Storage Engine"><i>
							<font style="vertical-align: inherit;">InnoDB存储引擎</font>
						</i></a>
					<font style="vertical-align: inherit;">和
					</font><a class="xref" href="mysql-cluster.html" title="Chapter&nbsp;22&nbsp;MySQL NDB Cluster 8.0">
						<font style="vertical-align: inherit;">第22章，</font>
					</a><a class="xref" href="mysql-cluster.html" title="Chapter&nbsp;22&nbsp;MySQL NDB Cluster 8.0"><i>
							<font style="vertical-align: inherit;">MySQL NDB Cluster 8.0中</font>
						</i></a>
					<font style="vertical-align: inherit;">介绍的默认
					</font>
				</font><a class="link" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎"><code class="literal">InnoDB</code></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">存储引擎或
					</font>
				</font><a class="link" href="mysql-cluster.html" title="第22章MySQL NDB Cluster 8.0"><code class="literal">NDB</code></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">存储引擎
					</font>
					<font style="vertical-align: inherit;">。</font>
					<font style="vertical-align: inherit;">对于高级用户，它还包含可插拔存储引擎体系结构的描述（请参见</font><a class="xref" href="storage-engines.html#pluggable-storage-overview"
					 title="16.11&nbsp;Overview of MySQL Storage Engine Architecture">
						<font style="vertical-align: inherit;">第16.11节“MySQL存储引擎体系结构概述”</font>
					</a>
					<font style="vertical-align: inherit;">）。
					</font>
				</font><a class="xref" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎">
					<font style="vertical-align: inherit;"></font><i>
						<font style="vertical-align: inherit;"></font>
					</i>
				</a>
				<font style="vertical-align: inherit;"></font><a class="xref" href="mysql-cluster.html" title="第22章MySQL NDB Cluster 8.0">
					<font style="vertical-align: inherit;"></font><i>
						<font style="vertical-align: inherit;"></font>
					</i>
				</a>
				<font style="vertical-align: inherit;"></font><a class="xref" href="storage-engines.html#pluggable-storage-overview"
				 title="16.11 MySQL存储引擎体系结构概述">
					<font style="vertical-align: inherit;"></font>
				</a>
				<font style="vertical-align: inherit;"></font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						有关商业MySQL Server二进制文件中提供的功能的信息，请参阅
					</font>
					<font style="vertical-align: inherit;">MySQL网站上的MySQL </font>
				</font><a class="ulink" href="https://www.mysql.com/products/" target="_top"><em class="citetitle">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">版本</font>
						</font>
					</em></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">。</font>
					<font style="vertical-align: inherit;">可用的存储引擎可能取决于您使用的是哪个版本的MySQL。
					</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						有关MySQL存储引擎的</font>
				</font><a class="xref" href="faqs.html#faqs-storage-engines" title="A.2 MySQL 8.0常见问题解答：存储引擎">
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">常见问题解答</font>
					</font>
				</a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">，请参见</font><a class="xref" href="faqs.html#faqs-storage-engines" title="A.2 MySQL 8.0常见问题解答：存储引擎">
						<font style="vertical-align: inherit;">第A.2节“MySQL 8.0 FAQ：存储引擎”</font>
					</a>
					<font style="vertical-align: inherit;">。
					</font>
				</font>
			</p>
			<h2><a name="idm140091631462048"></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">MySQL 8.0支持的存储引擎</font>
				</font>
			</h2>
			<div class="itemizedlist">
				<ul class="itemizedlist" style="list-style-type: disc; ">
					<li class="listitem">
						<p>
							<a class="link" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎"><code class="literal">InnoDB</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：MySQL 8.0中的默认存储引擎。
								</font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">是一种适用于MySQL的事务安全（ACID兼容）存储引擎，具有提交，回滚和崩溃恢复功能，可保护用户数据。
								</font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">行级锁定（没有升级到更粗略的粒度锁）和Oracle风格的一致非锁定读取增加了多用户并发性和性能。</font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">将用户数据存储在聚簇索引中，以减少基于主键的常见查询的I / O. </font>
								<font style="vertical-align: inherit;">为了保持数据完整性，
								</font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">还支持</font>
							</font><code class="literal">FOREIGN
								KEY</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">参照完整性约束。</font>
								<font style="vertical-align: inherit;">有关更多信息</font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，请参阅
								</font>
							</font><a class="xref" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第15章，</font>
								</font><i>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">InnoDB存储引擎</font>
									</font>
								</i>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#myisam-storage-engine" title="16.2 MyISAM存储引擎"><code class="literal">MyISAM</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：这些表占用空间小。
								</font>
							</font><a class="link" href="glossary.html#glos_table_lock" title="桌锁">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表级锁定</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									限制了读/写工作负载的性能，因此它通常用于Web和数据仓库配置中的只读或大部分读取工作负载。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#memory-storage-engine" title="16.3 MEMORY存储引擎"><code class="literal">Memory</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：将所有数据存储在RAM中，以便在需要快速查找非关键数据的环境中快速访问。</font>
								<font style="vertical-align: inherit;">这台发动机以前被称为</font>
							</font><code class="literal">HEAP</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">发动机。</font>
								<font style="vertical-align: inherit;">它的用例正在减少; </font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">其缓冲池存储区提供了一种通用且持久的方式来将大部分或全部数据保存在内存中，并
								</font>
							</font><code class="literal">NDBCLUSTER</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">为大型分布式数据集提供快速键值查找。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#csv-storage-engine" title="16.4 CSV存储引擎"><code class="literal">CSV</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：它的表实际上是以逗号分隔值的文本文件。</font>
								<font style="vertical-align: inherit;">CSV表允许您以CSV格式导入或转储数据，以便与读取和写入相同格式的脚本和应用程序交换数据。</font>
								<font style="vertical-align: inherit;">由于CSV表未编制索引，因此通常</font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">在正常操作期间</font>
								<font style="vertical-align: inherit;">将数据保留在</font>
								<font style="vertical-align: inherit;">表中，并且仅在导入或导出阶段使用CSV表。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#archive-storage-engine" title="16.5 ARCHIVE存储引擎"><code class="literal">Archive</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：这些紧凑的无索引表用于存储和检索大量很少引用的历史，存档或安全审计信息。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#blackhole-storage-engine" title="16.6 BLACKHOLE存储引擎"><code class="literal">Blackhole</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：Blackhole存储引擎接受但不存储数据，类似于Unix </font>
							</font><code class="literal">/dev/null</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">设备。</font>
								<font style="vertical-align: inherit;">查询始终返回空集。</font>
								<font style="vertical-align: inherit;">这些表可用于将DML语句发送到从属服务器的复制配置，但主服务器不保留其自己的数据副本。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="mysql-cluster.html" title="第22章MySQL NDB Cluster 8.0"><code class="literal">NDB</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">（也称为
								</font>
							</font><a class="link" href="mysql-cluster.html" title="第22章MySQL NDB Cluster 8.0"><code class="literal">NDBCLUSTER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">）：此集群数据库引擎特别适用于需要尽可能高的正常运行时间和可用性的应用程序。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#merge-storage-engine" title="16.7 MERGE存储引擎"><code class="literal">Merge</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：使MySQL DBA或开发人员能够对一系列相同的</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表</font>
								<font style="vertical-align: inherit;">进行逻辑分组，</font>
								<font style="vertical-align: inherit;">并将它们作为一个对象引用。</font>
								<font style="vertical-align: inherit;">适用于数据仓库等VLDB环境。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#federated-storage-engine" title="16.8 FEDERATED存储引擎"><code class="literal">Federated</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：提供链接单独的MySQL服务器以从许多物理服务器创建一个逻辑数据库的功能。</font>
								<font style="vertical-align: inherit;">非常适合分布式或数据集市环境。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<a class="link" href="storage-engines.html#example-storage-engine" title="16.9示例存储引擎"><code class="literal">Example</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">：这个引擎作为MySQL源代码中的一个例子，说明了如何开始编写新的存储引擎。</font>
								<font style="vertical-align: inherit;">它主要是开发人员感兴趣的。</font>
								<font style="vertical-align: inherit;">存储引擎是一个</font>
								<font style="vertical-align: inherit;">什么都不做</font>
								<font style="vertical-align: inherit;">的
								</font>
							</font><span class="quote">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">“ </font>
								</font><span class="quote">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">存根</font>
									</font>
								</span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;"> ”</font>
								</font>
							</span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">您可以使用此引擎创建表，但不能在其中存储数据或从中检索数据。
								</font>
							</font>
						</p>
					</li>
				</ul>
			</div>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						您不限于对整个服务器或架构使用相同的存储引擎。</font>
					<font style="vertical-align: inherit;">您可以为任何表指定存储引擎。</font>
					<font style="vertical-align: inherit;">例如，应用程序可能主要使用
					</font>
				</font><code class="literal">InnoDB</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">表，一个</font>
				</font><code class="literal">CSV</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						表用于将数据导出到电子表格，一些
					</font>
				</font><code class="literal">MEMORY</code>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">表用于临时工作空间。
					</font>
				</font>
			</p>
			<p>
				<span class="bold"><strong>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选择存储引擎</font>
						</font>
					</strong></span>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						MySQL提供的各种存储引擎在设计时考虑了不同的用例。</font>
					<font style="vertical-align: inherit;">下表概述了MySQL提供的一些存储引擎，并在表格后面附有说明。
					</font>
				</font>
			</p>
			<div class="table">
				<a name="idm140091631421552"></a>
				<p class="title"><b>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表16.1存储引擎功能摘要</font>
						</font>
					</b></p>
				<div class="table-contents">
					<table frame="box" rules="all" summary="Summary of features supported per storage engine.">
						<colgroup>
							<col width="10%">
							<col width="16%">
							<col width="16%">
							<col width="16%">
							<col width="16%">
							<col width="16%">
						</colgroup>
						<thead>
							<tr>
								<th scope="col">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">特征</font>
									</font>
								</th>
								<th scope="col">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">MyISAM数据</font>
									</font>
								</th>
								<th scope="col">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">记忆</font>
									</font>
								</th>
								<th scope="col">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">InnoDB的</font>
									</font>
								</th>
								<th scope="col">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">档案</font>
									</font>
								</th>
								<th scope="col">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">导航台</font>
									</font>
								</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">B树索引</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">备份/时间点恢复</font>
											</font>
										</strong></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">（注1）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">群集数据库支持</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">聚集索引</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">压缩数据</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注释2）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">数据缓存</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">N / A</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">加密数据</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注3）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注3）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注4）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注3）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注3）</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">外键支持</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注5）</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全文搜索索引</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注6）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">地理空间数据类型支持</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">地理空间索引支持</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是（注7）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">哈希索引</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">不（注8）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">索引缓存</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">N / A</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">锁定粒度</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">行</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">行</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">行</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">MVCC</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">复制支持</font>
											</font>
										</strong></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">（注1）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">有限公司（注9）</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">存储限制</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">256TB</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">内存</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">64TB</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">384EB</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">T树索引</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">交易</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
							<tr>
								<td scope="row"><span class="bold"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">更新数据字典的统计信息</font>
											</font>
										</strong></span></td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
								<td>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">是</font>
									</font>
								</td>
							</tr>
						</tbody>
					</table>
				</div>

			</div>
			<br class="table-break">
			<p><span class="bold"><strong>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">笔记：</font>
						</font>
					</strong></span></p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">1.在服务器中实现，而不是在存储引擎中实现。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">2.仅在使用压缩行格式时才支持压缩的MyISAM表。</font>
					<font style="vertical-align: inherit;">使用带MyISAM的压缩行格式的表是只读的。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">3.通过加密功能在服务器中实现。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">4.通过加密功能在服务器中实现; </font>
					<font style="vertical-align: inherit;">在MySQL 5.7及更高版本中，支持数据静态表空间加密。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">5. MySQL Cluster NDB 7.3及更高版本支持外键。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">6. MySQL 5.6及更高版本中提供了InnoDB对FULLTEXT索引的支持。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">7. MySQL 5.7及更高版本中提供了InnoDB对地理空间索引的支持。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">8. InnoDB在内部利用哈希索引来实现其自适应哈希索引功能。</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">9.请参阅本节后面的讨论。</font>
				</font>
			</p>
			<div class="section">

				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="storage-engine-setting"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.1设置存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建新表时，可以通过向</font>
						<font style="vertical-align: inherit;">语句</font>
						<font style="vertical-align: inherit;">添加</font>
					</font><code class="literal">ENGINE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表选项来
						</font>
						<font style="vertical-align: inherit;">指定要使用的存储引擎</font>
					</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">- 除非您设置了不同的，否则不需要ENGINE = INNODB</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
- 默认存储引擎。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CREATE TABLE t1（i INT）ENGINE = INNODB;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
- 简单的表定义可以从一个切换到另一个。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CREATE TABLE t2（i INT）ENGINE = CSV;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CREATE TABLE t3（i INT）ENGINE = MEMORY;</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							省略该</font>
					</font><code class="literal">ENGINE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">选项时，将使用默认存储引擎。</font>
						<font style="vertical-align: inherit;">默认引擎
						</font>
					</font><a class="link" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎"><code class="literal">InnoDB</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">在MySQL 8.0中。</font>
						<font style="vertical-align: inherit;">您可以使用</font>
					</font><a class="link" href="server-administration.html#option_mysqld_default-storage-engine"><code class="option">--default-storage-engine</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">服务器启动选项</font>
						<font style="vertical-align: inherit;">指定默认引擎</font>
						<font style="vertical-align: inherit;">，也可以通过</font>
					</font><a class="link" href="server-administration.html#option_mysqld_default-storage-engine"><code class="option">default-storage-engine</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">在</font>
					</font><code class="filename">my.cnf</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">配置文件中</font>
						<font style="vertical-align: inherit;">设置
						</font>
						<font style="vertical-align: inherit;">选项</font>
						<font style="vertical-align: inherit;">来指定默认引擎
						</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							您可以通过设置</font>
					</font><a class="link" href="server-administration.html#sysvar_default_storage_engine"><code class="literal">default_storage_engine</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">变量</font>
						<font style="vertical-align: inherit;">为当前会话设置默认存储引擎
						</font>
						<font style="vertical-align: inherit;">：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">SET default_storage_engine = NDBCLUSTER;
</font></font></pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">通过在启动时或运行时</font>
						<font style="vertical-align: inherit;">设置</font>
						<font style="vertical-align: inherit;">，可以</font>
						<font style="vertical-align: inherit;">通过设置</font>
					</font><code class="literal">TEMPORARY</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">创建</font>
						<font style="vertical-align: inherit;">
							的</font>
						<font style="vertical-align: inherit;">表</font>
						<font style="vertical-align: inherit;">的存储引擎</font>
						<font style="vertical-align: inherit;">与</font>
					</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
							TEMPORARY TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">永久表的引擎分开设置
						</font>
					</font><a class="link" href="server-administration.html#sysvar_default_tmp_storage_engine"><code class="literal">default_tmp_storage_engine</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要将表从一个存储引擎转换为另一个存储引擎，请使用</font>
					</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">指示新引擎</font>
						<font style="vertical-align: inherit;">的
						</font>
						<font style="vertical-align: inherit;">语句：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">ALTER TABLE t ENGINE = InnoDB;
</font></font></pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							请参见</font>
					</font><a class="xref" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.1.20节“CREATE TABLE语法”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><a class="xref" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.1.9节“ALTER TABLE语法”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果您尝试使用未编译但未编译但已停用的存储引擎，则MySQL会使用默认存储引擎创建表。</font>
						<font style="vertical-align: inherit;">例如，在复制设置中，您的主服务器可能使用</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							表来获得最大安全性，但是从服务器使用其他存储引擎来提高速度，但会牺牲持久性或并发性。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							默认情况下，无论何时</font>
					</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">或
						</font>
					</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">不能使用默认存储引擎</font>
						<font style="vertical-align: inherit;">都会生成警告
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">如果所需的引擎不可用，为了防止出现令人困惑的意外行为，请启用
						</font>
					</font><a class="link" href="server-administration.html#sqlmode_no_engine_substitution"><code class="literal">NO_ENGINE_SUBSTITUTION</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">SQL模式。</font>
						<font style="vertical-align: inherit;">如果所需的引擎不可用，则此设置会产生错误而不是警告，并且不会创建或更改该表。</font>
						<font style="vertical-align: inherit;">请参见</font>
					</font><a class="xref" href="server-administration.html#sql-mode" title="5.1.11服务器SQL模式">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第5.1.11节“服务器SQL模式”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							MySQL可以将表的索引和数据存储在一个或多个其他文件中，具体取决于存储引擎。</font>
						<font style="vertical-align: inherit;">表和列定义存储在MySQL数据字典中。</font>
						<font style="vertical-align: inherit;">各个存储引擎会创建他们管理的表所需的任何其他文件。</font>
						<font style="vertical-align: inherit;">如果表名包含特殊字符，则表文件的名称包含这些字符的编码版本，如
						</font>
					</font><a class="xref" href="language-structure.html#identifier-mapping" title="9.2.3标识符到文件名的映射">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第9.2.3节“标识符到文件名的映射”中所述</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="myisam-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.2 MyISAM存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="storage-engines.html#myisam-start">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.1 MyISAM启动选项</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#key-space">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.2密钥所需的空间</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#myisam-table-formats">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.3 MyISAM表存储格式</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#myisam-table-problems">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.4 MyISAM表问题</font>
									</font>
								</a></span></dt></dl>
				</div>
				<a class="indexterm" name="idm140091631249392"></a><a class="indexterm" name="idm140091631248352"></a>
				<p>
					<code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">基于旧的（不再可用）</font>
					</font><code class="literal">ISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎，但有许多有用的扩展。
						</font>
					</font>
				</p>
				<div class="table">
					<a name="idm140091631244976"></a>
					<p class="title"><b>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表16.2 MyISAM存储引擎功能</font>
							</font>
						</b></p>
					<div class="table-contents">
						<table frame="box" rules="all" summary="Features supported by the MyISAM storage engine.">
							<colgroup>
								<col width="60%">
								<col width="40%">
							</colgroup>
							<thead>
								<tr>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">特征</font>
										</font>
									</th>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">支持</font>
										</font>
									</th>
								</tr>
							</thead>
							<tbody>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">B树索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">备份/时间点恢复</font>
												</font>
											</strong></span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">（在服务器中实现，而不是在存储引擎中实现。）</font>
										</font>
									</td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">群集数据库支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">聚集索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">压缩数据</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是（仅在使用压缩行格式时支持压缩MyISAM表。使用带MyISAM的压缩行格式的表是只读的。）</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">数据缓存</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">加密数据</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是（通过加密功能在服务器中实现。）</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">外键支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">全文搜索索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">地理空间数据类型支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">地理空间索引支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">哈希索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">索引缓存</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">锁定粒度</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">表</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">MVCC</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">复制支持</font>
												</font>
											</strong></span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">（在服务器中实现，而不是在存储引擎中实现。）</font>
										</font>
									</td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">存储限制</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">256TB</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">T树索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">交易</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">更新数据字典的统计信息</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
							</tbody>
						</table>
					</div>

				</div>
				<br class="table-break">
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							每个</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表都存储在磁盘上的两个文件中。</font>
						<font style="vertical-align: inherit;">这些文件的名称以表名开头，并具有指示文件类型的扩展名。</font>
						<font style="vertical-align: inherit;">数据文件具有
						</font>
					</font><code class="filename">.MYD</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">（</font>
					</font><code class="literal">MYData</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）扩展名。</font>
						<font style="vertical-align: inherit;">索引文件具有</font>
					</font><code class="filename">.MYI</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							（</font>
					</font><code class="literal">MYIndex</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）扩展名。</font>
						<font style="vertical-align: inherit;">表定义存储在MySQL数据字典中。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要明确指定您想要一个</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							表，请使用</font>
					</font><code class="literal">ENGINE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表选项</font>
						<font style="vertical-align: inherit;">指示</font>
						<font style="vertical-align: inherit;">：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE t（i INT）ENGINE = MYISAM;
</font></font></pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在MySQL 8.0中，通常需要使用它
						</font>
					</font><code class="literal">ENGINE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">来指定</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							存储引擎，因为</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">它是默认引擎。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							您可以</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用</font>
					</font><a class="link" href="programs.html#mysqlcheck" title="4.5.3 mysqlcheck  - 表维护程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlcheck</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">客户端或</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							实用程序</font>
						<font style="vertical-align: inherit;">检查或修复</font>
						<font style="vertical-align: inherit;">表
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">您还可以</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用</font>
					</font><a class="link" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisampack</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">压缩</font>
						<font style="vertical-align: inherit;">表
						</font>
						<font style="vertical-align: inherit;">以占用更少的空间。</font>
						<font style="vertical-align: inherit;">请参见
						</font>
					</font><a class="xref" href="programs.html#mysqlcheck" title="4.5.3 mysqlcheck  - 表维护程序">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.5.3节“ </font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlcheck</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> - 表维护程序”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，</font>
					</font><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.6.4节“ </font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> - MyISAM表维护实用程序”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><a class="xref" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.6.6节“ </font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisampack</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> - 生成压缩，只读MyISAM表”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在MySQL 8.0中，</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎不提供分区支持。</font><span class="emphasis"><em>
								<font style="vertical-align: inherit;">在以前版本的MySQL中创建的</font>
							</em></span>
					</font><span class="emphasis"><em>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">分区
								</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表不能在MySQL 8.0中使用</font>
							</font>
						</em></span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">有关更多信息，请参见
						</font>
					</font><a class="xref" href="partitioning.html#partitioning-limitations-storage-engines" title="23.6.2与存储引擎相关的分区限制">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第23.6.2节“分区与存储引擎相关的限制”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">有关升级此类表以便在MySQL 8.0中使用它们的帮助，请参见
						</font>
					</font><a class="xref" href="installing.html#upgrading-from-previous-series" title="2.11.4 MySQL 8.0的变化">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第2.11.4节“MySQL 8.0中的更改”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;"> 表具有以下特征：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										所有数据值首先以低字节存储。</font>
									<font style="vertical-align: inherit;">这使得数据机和操作系统独立。</font>
									<font style="vertical-align: inherit;">二进制可移植性的唯一要求是机器使用二进制补码有符号整数和IEEE浮点格式。</font>
									<font style="vertical-align: inherit;">这些要求在主流机器中广泛使用。</font>
									<font style="vertical-align: inherit;">二进制兼容性可能不适用于有时具有特殊处理器的嵌入式系统。
									</font>
								</font>
							</p>
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										首先存储低字节数据没有明显的速度损失; </font>
									<font style="vertical-align: inherit;">表行中的字节通常是未对齐的，并且按顺序读取未对齐字节所需的处理比按相反顺序处理要多得多。</font>
									<font style="vertical-align: inherit;">此外，与其他代码相比，服务器中获取列值的代码不是时间关键。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										所有数字键值首先与高字节一起存储，以允许更好的索引压缩。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										支持大文件的文件系统和操作系统支持大文件（最大63位文件长度）。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										表中有（2 </font>
								</font><sup>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">32</font>
									</font>
								</sup>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">）</font>
								</font><sup>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">2</font>
									</font>
								</sup>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										（1.844E + 19）行的限制</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										每个</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										表</font>
									<font style="vertical-align: inherit;">的最大索引数</font>
									<font style="vertical-align: inherit;">为64。
									</font>
								</font>
							</p>
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										每个索引的最大列数为16。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										最大密钥长度为1000个字节。</font>
									<font style="vertical-align: inherit;">这也可以通过更改源和重新编译来更改。</font>
									<font style="vertical-align: inherit;">对于长度大于250字节的密钥的情况，使用比默认的1024字节更大的密钥块大小。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										当按排序顺序插入行时（如使用
									</font>
								</font><code class="literal">AUTO_INCREMENT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列时），将拆分索引树，以便高节点仅包含一个键。</font>
									<font style="vertical-align: inherit;">这样可以提高索引树中的空间利用率。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;"></font><code class="literal">AUTO_INCREMENT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										支持每个表</font>
									<font style="vertical-align: inherit;">
										对一</font>
									<font style="vertical-align: inherit;">列进行</font>
									<font style="vertical-align: inherit;">内部处理</font>
									<font style="vertical-align: inherit;">。</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										自动更新此列
									</font>
								</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">以及
									</font>
								</font><a class="link" href="sql-syntax.html#update" title="13.2.12 UPDATE语法"><code class="literal">UPDATE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">操作。</font>
									<font style="vertical-align: inherit;">这使得
									</font>
								</font><code class="literal">AUTO_INCREMENT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列更快（至少10％）。</font>
									<font style="vertical-align: inherit;">删除后，序列顶部的值不会重复使用。</font>
									<font style="vertical-align: inherit;">（当</font>
								</font><code class="literal">AUTO_INCREMENT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列被定义为多列索引的最后一列时，会重复使用从序列顶部删除的值。）</font>
								</font><code class="literal">AUTO_INCREMENT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">可以使用</font>
								</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">或
									</font>
								</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">myisamchk</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">重置</font>
									<font style="vertical-align: inherit;">该
									</font>
									<font style="vertical-align: inherit;">值
									</font>
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										将删除与更新和插入混合时，动态大小的行的碎片要小得多。</font>
									<font style="vertical-align: inherit;">这是通过自动组合相邻的已删除块并通过扩展块（如果删除下一个块）来完成的。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">支持并发插入：如果表在数据文件的中间没有空闲块，则可以</font>
								</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">在其他线程从表中读取的同时</font>
									<font style="vertical-align: inherit;">将
									</font>
									<font style="vertical-align: inherit;">新行放入其中。</font>
									<font style="vertical-align: inherit;">由于删除行或使用比其当前内容更多的数据更新动态长度行，可能会发生空闲块。</font>
									<font style="vertical-align: inherit;">当所有空闲块用完（填写）时，将来的插入将再次并发。</font>
									<font style="vertical-align: inherit;">请参见
									</font>
								</font><a class="xref" href="optimization.html#concurrent-inserts" title="8.11.3并发插入">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">第8.11.3节“并发插入”</font>
									</font>
								</a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										您可以将数据文件和索引文件放在不同的物理设备上的不同目录中，以便使用</font>
								</font><code class="literal">DATA DIRECTORY</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">和</font>
								</font><code class="literal">INDEX
									DIRECTORY</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表选项</font>
									<font style="vertical-align: inherit;">获得更快的速度</font>
								</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。</font>
									<font style="vertical-align: inherit;">请参见</font>
								</font><a class="xref" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">第13.1.20节“CREATE TABLE语法”</font>
									</font>
								</a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">和
									</font>
								</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列可以编入索引。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<code class="literal">NULL</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">索引列中允许使用值。</font>
									<font style="vertical-align: inherit;">每个密钥需要0到1个字节。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										每个字符列可以具有不同的字符集。</font>
									<font style="vertical-align: inherit;">请参见
									</font>
								</font><a class="xref" href="charset.html" title="第10章字符集，排序规则，Unicode">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">第10章，</font>
									</font><i>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">字符集，排序规则，Unicode</font>
										</font>
									</i>
								</a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;"></font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">索引文件中</font>
									<font style="vertical-align: inherit;">
										有一个标志</font>
									<font style="vertical-align: inherit;">，指示表是否已正确关闭。</font>
									<font style="vertical-align: inherit;">如果
									</font>
									<font style="vertical-align: inherit;">使用该</font>
									<font style="vertical-align: inherit;">选项</font>
									<font style="vertical-align: inherit;">启动
									</font>
								</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysqld</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;"></font><a class="link" href="server-administration.html#option_mysqld_myisam-recover-options"><code
									 class="option">--myisam-recover-options</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，
									</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">则会在打开时自动检查表，如果表未正确关闭则会对表进行修复。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
											<font style="vertical-align: inherit;"></font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">如果使用该</font>
								</font><a class="link" href="programs.html#option_myisamchk_update-state"><code class="option">--update-state</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										选项</font>
									<font style="vertical-align: inherit;">运行，</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
										 class="command"><strong>
												<font style="vertical-align: inherit;"> myisamchk</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">会将表标记为已选中</font>
									<font style="vertical-align: inherit;">。</font>
								</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">myisamchk --fast</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">仅检查那些没有此标记的表。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">myisamchk --analyze</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">存储部分密钥以及整个密钥的统计信息。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<a class="link" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">myisampack</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">可以打包
									</font>
								</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">和
									</font>
								</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;"> 还支持以下功能：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										支持真实</font>
								</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">类型; </font>
									<font style="vertical-align: inherit;">一</font>
								</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列开始与存储在一个或两个字节的长度。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										具有</font>
								</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列的表可以具有固定或动态的行长度。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表中列</font>
								</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">和
									</font>
								</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">CHAR</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列</font>
									<font style="vertical-align: inherit;">
										的长度总和
									</font>
									<font style="vertical-align: inherit;">可能高达64KB。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										任意长度限制</font>
								</font><code class="literal">UNIQUE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<h3><a name="idm140091631098400"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">其他资源</font>
					</font>
				</h3>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										有关</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">存储引擎的</font>
									<font style="vertical-align: inherit;">论坛，</font>
									<font style="vertical-align: inherit;">请访问</font>
								</font><a class="ulink" href="https://forums.mysql.com/list.php?21" target="_top">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">https://forums.mysql.com/list.php?21</font>
									</font>
								</a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-start"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.1 MyISAM启动选项</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								的以下选项</font>
							<font style="vertical-align: inherit;">可用于更改</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">的行为</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">有关其他信息，请参见</font>
						</font><a class="xref" href="server-administration.html#server-options" title="5.1.7服务器命令选项">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第5.1.7节“服务器命令选项”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<div class="table">
						<a name="idm140091631090960"></a>
						<p class="title"><b>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表16.3 MyISAM选项和变量参考</font>
								</font>
							</b></p>
						<div class="table-contents">
							<table frame="box" rules="all" summary="Reference for MyISAM command-line options and system variables.">
								<colgroup>
									<col width="20%">
									<col width="15%">
									<col width="15%">
									<col width="15%">
									<col width="15%">
									<col width="15%">
									<col width="15%">
								</colgroup>
								<thead>
									<tr>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">名称</font>
											</font>
										</th>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">CMD线</font>
											</font>
										</th>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">选项文件</font>
											</font>
										</th>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">系统变量</font>
											</font>
										</th>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">状态变量</font>
											</font>
										</th>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">Var范围</font>
											</font>
										</th>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">动态</font>
											</font>
										</th>
									</tr>
								</thead>
								<tbody>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_bulk_insert_buffer_size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">bulk_insert_buffer_size</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">都</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_concurrent_insert">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">concurrent_insert</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_delay_key_write">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">DELAY_KEY_WRITE</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_have_rtree_keys">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">have_rtree_keys</font>
												</font>
											</a></td>
										<td></td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">没有</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_key_buffer_size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">key_buffer_size的</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#option_mysqld_log-isam">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">登录ISAM</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#option_mysqld_myisam-block-size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">的myisam块大小</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_data_pointer_size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_data_pointer_size</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_max_sort_file_size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_max_sort_file_size</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_mmap_size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_mmap_size</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">没有</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#option_mysqld_myisam-recover-options">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">MyISAM数据-恢复选项</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
									</tr>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">- </font>
											</font><span class="emphasis"><em>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">变量</font>
													</font>
												</em></span>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">：</font>
											</font><a class="link" href="server-administration.html#sysvar_myisam_recover_options">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_recover_options</font>
												</font>
											</a>
										</td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_recover_options">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_recover_options</font>
												</font>
											</a></td>
										<td></td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">没有</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_repair_threads">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_repair_threads</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">都</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_sort_buffer_size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_sort_buffer_size</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">都</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_stats_method">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_stats_method</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">都</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_myisam_use_mmap">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisam_use_mmap</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">全球</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#option_mysqld_skip-concurrent-insert">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">跳过并发插入</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
									</tr>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">- </font>
											</font><span class="emphasis"><em>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">变量</font>
													</font>
												</em></span>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">：</font>
											</font><a class="link" href="server-administration.html#sysvar_concurrent_insert">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">concurrent_insert</font>
												</font>
											</a>
										</td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
										<td></td>
									</tr>
									<tr>
										<td scope="row"><a class="link" href="server-administration.html#sysvar_tmp_table_size">
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">tmp_table_size的</font>
												</font>
											</a></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
										<td></td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">都</font>
											</font>
										</td>
										<td>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">是</font>
											</font>
										</td>
									</tr>
								</tbody>
							</table>
						</div>

					</div>
					<br class="table-break">
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<a class="indexterm" name="idm140091630936592"></a>

									<a class="indexterm" name="idm140091630935088"></a>

									<a class="link" href="server-administration.html#option_mysqld_myisam-recover-options"><code class="option">--myisam-recover-options=<em
											 class="replaceable"><code>mode</code></em></code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											设置自动恢复崩溃</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">的模式
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="indexterm" name="idm140091630930368"></a>

									<a class="indexterm" name="idm140091630928880"></a>

									<a class="link" href="server-administration.html#sysvar_delay_key_write"><code class="option">--delay-key-write=ALL</code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											不要在任何</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表的</font>
										<font style="vertical-align: inherit;">写入之间刷新密钥缓冲区
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
								<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

									<div class="admon-title">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												注意
											</font>
										</font>
									</div>
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												如果执行此操作，则在使用</font>
										</font><code class="literal">MyISAM</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">表时</font>
											<font style="vertical-align: inherit;">，不应
											</font>
											<font style="vertical-align: inherit;">从其他程序（例如来自其他MySQL服务器或使用
											</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">）访问表。</font>
											<font style="vertical-align: inherit;">这样做会导致索引损坏。</font>
											<font style="vertical-align: inherit;">使用
											</font>
										</font><a class="link" href="server-administration.html#option_mysqld_external-locking"><code class="option">--external-locking</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">并不能消除这种风险。
											</font>
										</font>
									</p>
								</div>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								以下系统变量会影响</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">的行为
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">有关其他信息，请参见
							</font>
						</font><a class="xref" href="server-administration.html#server-system-variables" title="5.1.8服务器系统变量">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第5.1.8节“服务器系统变量”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<a class="link" href="server-administration.html#sysvar_bulk_insert_buffer_size"><code class="literal">bulk_insert_buffer_size</code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											批量插入优化中使用的树缓存的大小。
										</font>
									</font>
								</p>
								<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

									<div class="admon-title">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												注意
											</font>
										</font>
									</div>
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												这是</font>
										</font><span class="emphasis"><em>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">每个线程</font>
												</font>
											</em></span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">的限制</font>
											<font style="vertical-align: inherit;">！
											</font>
										</font>
									</p>
								</div>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="server-administration.html#sysvar_myisam_max_sort_file_size"><code class="literal">myisam_max_sort_file_size</code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											MySQL正在允许而重新创建一个使用临时文件的最大尺寸</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">指数（期间</font>
									</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或
										</font>
									</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD
											DATA</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">）。</font>
										<font style="vertical-align: inherit;">如果文件大小大于此值，则使用密钥缓存创建索引，这样会更慢。</font>
										<font style="vertical-align: inherit;">该值以字节为单位。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="server-administration.html#sysvar_myisam_sort_buffer_size"><code class="literal">myisam_sort_buffer_size</code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											设置恢复表时使用的缓冲区大小。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果</font>
							<font style="vertical-align: inherit;">使用该</font>
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">启动</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，
							</font>
							<font style="vertical-align: inherit;">则会激活自动恢复
							</font>
						</font><a class="link" href="server-administration.html#option_mysqld_myisam-recover-options"><code class="option">--myisam-recover-options</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">在这种情况下，当服务器打开一个</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								表时，它会检查表是否标记为崩溃，或者表的打开计数变量是否为0，并且您正在运行禁用外部锁定的服务器。</font>
							<font style="vertical-align: inherit;">如果满足以下任一条件，则会发生以下情况：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											服务器检查表是否有错误。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果服务器发现错误，它会尝试进行快速表修复（使用排序而不重新创建数据文件）。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果修复由于数据文件中的错误而失败（例如，重复键错误），则服务器再次尝试，这次重新创建数据文件。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果修复仍然失败，服务器将再次尝试使用旧的修复选项方法（逐行写入而不进行排序）。</font>
										<font style="vertical-align: inherit;">此方法应该能够修复任何类型的错误并且磁盘空间要求低。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果恢复将无法从先前完成的语句中恢复所有行，并且您未</font>
						</font><code class="literal">FORCE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在</font>
						</font><a class="link" href="server-administration.html#option_mysqld_myisam-recover-options"><code class="option">--myisam-recover-options</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">的值中</font>
							<font style="vertical-align: inherit;">指定
							</font>
							<font style="vertical-align: inherit;">，则
							</font>
							<font style="vertical-align: inherit;">自动修复将在错误日志中中止并显示错误消息：
							</font>
						</font>
					</p>
					<pre data-lang="none" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">错误：无法修复表：test.g00pages
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果您指定</font>
						</font><code class="literal">FORCE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，则会写入这样的警告：
							</font>
						</font>
					</p>
					<pre data-lang="none" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">警告：修复./test/g00pages时找到354行中的344行
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果自动恢复值包括
							</font>
						</font><code class="literal">BACKUP</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，则恢复过程将创建具有表单名称的文件
							</font>
						</font><code class="filename"><em class="replaceable"><code>tbl_name-datetime</code></em>.BAK</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">您应该有一个</font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">cron</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">脚本，可以自动将这些文件从数据库目录移动到备份媒体。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="key-space"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.2密钥所需的空间</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<a class="indexterm" name="idm140091630887504"></a>
					<p>
						<code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表使用B树索引。</font>
							<font style="vertical-align: inherit;">您可以粗略计算索引文件的大​​小
							</font>
						</font><code class="literal">(key_length+4)/0.67</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，对所有键求和。</font>
							<font style="vertical-align: inherit;">这是最糟糕的情况，当所有键按排序顺序插入并且表没有任何压缩键时。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								字符串索引是空间压缩的。</font>
							<font style="vertical-align: inherit;">如果第一个索引部分是字符串，则它也是前缀压缩的。</font>
							<font style="vertical-align: inherit;">如果字符串列具有大量尾随空格或者</font>
						</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">不是总是用于全长</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">列，则</font>
							<font style="vertical-align: inherit;">空间压缩使索引文件小于最坏情况的数字
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">前缀压缩用于以字符串开头的键。</font>
							<font style="vertical-align: inherit;">如果有许多字符串具有相同的前缀，则前缀压缩会有所帮助。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表格中，您还可以通过</font>
						</font><code class="literal">PACK_KEYS=1</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在创建表格时</font>
							<font style="vertical-align: inherit;">指定</font>
							<font style="vertical-align: inherit;">表格选项</font>
							<font style="vertical-align: inherit;">来为压缩数字添加前缀</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">数字首先以高字节存储，因此当您有许多具有相同前缀的整数键时，这会有所帮助。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-table-formats"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.3 MyISAM表存储格式</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<div class="toc">
						<dl class="toc"><dt><span class="section"><a href="storage-engines.html#static-format">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.3.1静态（固定长度）表特性</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#dynamic-format">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.3.2动态表特性</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#compressed-format">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.3.3压缩表特性</font>
										</font>
									</a></span></dt></dl>
					</div>
					<p>
						<code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">支持三种不同的存储格式。</font>
							<font style="vertical-align: inherit;">根据您使用的列类型自动选择其中两种（固定格式和动态格式）。</font>
							<font style="vertical-align: inherit;">第三种压缩格式只能使用</font>
						</font><a class="link" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisampack</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">实用程序</font>
							<font style="vertical-align: inherit;">创建
							</font>
							<font style="vertical-align: inherit;">（请参见
							</font>
						</font><a class="xref" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第4.6.6节“ </font>
							</font><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisampack</font>
									</font>
								</strong></span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;"> - 生成压缩，只读MyISAM表”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">）。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								当您使用</font>
						</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或
							</font>
						</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">用于不具有一个表
							</font>
						</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或
							</font>
						</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">列，您可以强制表格形式</font>
						</font><code class="literal">FIXED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或
							</font>
						</font><code class="literal">DYNAMIC</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">与</font>
						</font><code class="literal">ROW_FORMAT</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								表选项。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								见</font>
						</font><a class="xref" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第13.1.20，“CREATE TABLE语法”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，有关的信息
							</font>
						</font><code class="literal">ROW_FORMAT</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								您可以</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								使用</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">解压缩（解包）压缩</font>
							<font style="vertical-align: inherit;">表</font>
						</font><a class="link" href="programs.html#option_myisamchk_unpack"><code class="option">--unpack</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">; </font>
							<font style="vertical-align: inherit;">有关更多信息</font>
						</font><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，</font>
							</font><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span>
							<font style="vertical-align: inherit;"></font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">请参见
							</font><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
								<font style="vertical-align: inherit;">第4.6.4节“ </font>
							</a><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">myisamchk</font>
									</strong></span></a><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
								<font style="vertical-align: inherit;"> - MyISAM表维护实用程序”</font>
							</a>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<div class="section">

						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="static-format"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.3.1静态（固定长度）表特性</font>
										</font>
									</h4>
								</div>
							</div>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									静态格式是</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									表</font>
								<font style="vertical-align: inherit;">的默认格式</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">当表不包含可变长度列（它是用来</font>
							</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，
								</font>
							</font><a class="link" href="data-types.html#binary-varbinary" title="11.4.2 BINARY和VARBINARY类型"><code class="literal">VARBINARY</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，
								</font>
							</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，或
								</font>
							</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">）。</font>
								<font style="vertical-align: inherit;">每行使用固定数量的字节存储。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在三种</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">存储格式中，静态格式是最简单和最安全的（最少受到损坏）。</font>
								<font style="vertical-align: inherit;">它也是磁盘格式中最快的，因为可以轻松地在磁盘上找到数据文件中的行：要根据索引中的行号查找行，请将行号乘以行长度计算行位置。</font>
								<font style="vertical-align: inherit;">此外，在扫描表时，每次磁盘读取操作都很容易读取恒定行数。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									如果您的计算机在MySQL服务器写入固定格式</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">文件时</font>
								<font style="vertical-align: inherit;">崩溃，则可以证明安全性
								</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">在这种情况下，
								</font>
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisamchk</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">可以轻松确定每行开始和结束的位置，因此它通常可以回收除部分写入行之外的所有行。</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">始终可以根据数据行重建表索引。
								</font>
							</font>
						</p>
						<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

							<div class="admon-title">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										注意
									</font>
								</font>
							</div>
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										固定长度行格式仅适用于没有</font>
								</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">或
									</font>
									<font style="vertical-align: inherit;">没有
									</font>
								</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">列的表。</font>
									<font style="vertical-align: inherit;">使用带有显式</font>
								</font><code class="literal">ROW_FORMAT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">子句的</font>
									<font style="vertical-align: inherit;">这些列创建表
									</font>
									<font style="vertical-align: inherit;">不会引发错误或警告; </font>
									<font style="vertical-align: inherit;">格式规范将被忽略。
									</font>
								</font>
							</p>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									静态格式表具有以下特征：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">CHAR</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">和
											</font>
										</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">列是空间填充到指定列的宽度，虽然列类型不被改变。
											</font>
										</font><a class="link" href="data-types.html#binary-varbinary" title="11.4.2 BINARY和VARBINARY类型"><code class="literal">BINARY</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">和
											</font>
										</font><a class="link" href="data-types.html#binary-varbinary" title="11.4.2 BINARY和VARBINARY类型"><code class="literal">VARBINARY</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">列用</font>
										</font><code class="literal">0x00</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">字节</font>
											<font style="vertical-align: inherit;">填充</font>
											<font style="vertical-align: inherit;">到列宽。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<code class="literal">NULL</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">列需要行中的额外空间来记录它们的值是否为
											</font>
										</font><code class="literal">NULL</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">。</font>
											<font style="vertical-align: inherit;">每</font>
										</font><code class="literal">NULL</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">列额外增加一位，向上舍入到最近的字节。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												很快。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												易于缓存。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												在崩溃后易于重建，因为行位于固定位置。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												除非您删除大量行并希望将可用磁盘空间返回给操作系统，否则无需重组。</font>
											<font style="vertical-align: inherit;">为此，请使用
											</font>
										</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
												TABLE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">或
											</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk -r</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												通常需要比动态格式表更多的磁盘空间。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												使用以下表达式计算静态大小行的预期行长度（以字节为单位）：
											</font>
										</font>
									</p>
									<pre data-lang="none" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">行长= 1</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
             +（</font></font><em class="replaceable"><code>sum of column lengths</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
             +（</font></font><em class="replaceable"><code>number of NULL columns</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+ </font></font><em class="replaceable"><code>delete_flag</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+ 7）/ 8</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
             +（</font></font><em class="replaceable"><code>number of variable-length columns</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">）
</font></font></pre>
									<p>
										<em class="replaceable"><code>delete_flag</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">对于具有静态行格式的表是1。</font>
											<font style="vertical-align: inherit;">静态表在行记录中使用一个位来指示是否已删除该行的标志。
											</font>
										</font><em class="replaceable"><code>delete_flag</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">动态表为0，因为该标志存储在动态行标题中。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>

					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="dynamic-format"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.3.2动态表特性</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<a class="indexterm" name="idm140091630821408"></a><a class="indexterm" name="idm140091630820352"></a>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									用于动态存储格式，如果一个</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									表包含任何可变长度列（</font>
							</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，
								</font>
							</font><a class="link" href="data-types.html#binary-varbinary" title="11.4.2 BINARY和VARBINARY类型"><code class="literal">VARBINARY</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，
								</font>
							</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，或
								</font>
							</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">），或者如果表用所创建的</font>
							</font><code class="literal">ROW_FORMAT=DYNAMIC</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表的选项。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									动态格式比静态格式稍微复杂一些，因为每行都有一个标题，表示它的长度。</font>
								<font style="vertical-align: inherit;">由于更新，行变长时，行可能会碎片化（存储在不连续的片段中）。
								</font>
							</font>
						</p><a class="indexterm" name="idm140091630811280"></a>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									您可以使用</font>
							</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
									TABLE</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">或
								</font>
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisamchk -r</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">对表进行碎片整理。</font>
								<font style="vertical-align: inherit;">如果您在包含一些可变长度列的表中经常访问或更改固定长度的列，则将可变长度列移动到其他表以避免碎片可能是个好主意。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									动态格式表具有以下特征：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												除了长度小于4的列之外，所有字符串列都是动态的。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												每行前面都有一个位图，指示哪些列包含空字符串（对于字符串列）或零（对于数字列）。</font>
											<font style="vertical-align: inherit;">这不包括包含</font>
										</font><code class="literal">NULL</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">值的</font>
											<font style="vertical-align: inherit;">列</font>
											<font style="vertical-align: inherit;">。</font>
											<font style="vertical-align: inherit;">如果在尾随空格删除后字符串列的长度为零，或者数字列的值为零，则它将在位图中标记，而不会保存到磁盘。</font>
											<font style="vertical-align: inherit;">非空字符串保存为长度字节加上字符串内容。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<code class="literal">NULL</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">列需要行中的额外空间来记录它们的值是否为
											</font>
										</font><code class="literal">NULL</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">。</font>
											<font style="vertical-align: inherit;">每</font>
										</font><code class="literal">NULL</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">列额外增加一位，向上舍入到最近的字节。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												通常需要的磁盘空间比固定长度表少得多。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												每行只使用所需的空间。</font>
											<font style="vertical-align: inherit;">但是，如果一行变大，则会将其拆分为所需的多个部分，从而导致行碎片。</font>
											<font style="vertical-align: inherit;">例如，如果使用扩展行长度的信息更新行，则该行将变为碎片。</font>
											<font style="vertical-align: inherit;">在这种情况下，您可能需要</font>
											<font style="vertical-align: inherit;">不时</font>
											<font style="vertical-align: inherit;">运行</font>
										</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
												TABLE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">或
											</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk -r</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">以提高性能。</font>
											<font style="vertical-align: inherit;">使用</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk -ei</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">获取表统计信息。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												崩溃后重建静态格式表要比重建更困难，因为行可能会碎片化成许多碎片，并且链接（碎片）可能会丢失。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												使用以下表达式计算动态大小行的预期行长度：
											</font>
										</font>
									</p>
									<pre data-lang="none" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">3</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+（</font></font><em class="replaceable"><code>number of columns</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+ 7）/ 8</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+（</font></font><em class="replaceable"><code>number of char columns</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+（</font></font><em class="replaceable"><code>packed size of numeric columns</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+（</font></font><em class="replaceable"><code>length of strings</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+（</font></font><em class="replaceable"><code>number of NULL columns</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+ 7）/ 8
</font></font></pre>
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												每个链接的罚分为6个字节。</font>
											<font style="vertical-align: inherit;">只要更新导致行的放大，就会链接动态行。</font>
											<font style="vertical-align: inherit;">每个新链接至少为20个字节，因此下一个放大可能在同一个链接中。</font>
											<font style="vertical-align: inherit;">如果不是，则创建另一个链接。</font>
											<font style="vertical-align: inherit;">您可以使用</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk -ed</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">找到链接数
											</font>
											<font style="vertical-align: inherit;">。</font>
											<font style="vertical-align: inherit;">可以使用</font>
										</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
												TABLE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">或
											</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk -r</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">删除所有链接</font>
											<font style="vertical-align: inherit;">。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>

					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="compressed-format"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.3.3压缩表特性</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<a class="indexterm" name="idm140091630783056"></a><a class="indexterm" name="idm140091630781600"></a><a class="indexterm"
						 name="idm140091630780528"></a><a class="indexterm" name="idm140091630779040"></a>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									压缩存储格式是使用</font>
							</font><a class="link" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisampack</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">工具</font>
								<font style="vertical-align: inherit;">生成的只读格式</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">压缩表可以使用</font>
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisamchk</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">解压缩
								</font>
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									压缩表具有以下特征：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												压缩表占用的磁盘空间非常小。</font>
											<font style="vertical-align: inherit;">这可以最大限度地减少磁盘使用，这在使用慢速磁盘（如CD-ROM）时很有用。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												每行都是单独压缩的，因此访问开销非常小。</font>
											<font style="vertical-align: inherit;">行的标头占用一到三个字节，具体取决于表中的最大行。</font>
											<font style="vertical-align: inherit;">每列的压缩方式不同。</font>
											<font style="vertical-align: inherit;">每列通常有不同的霍夫曼树。</font>
											<font style="vertical-align: inherit;">一些压缩类型是：
											</font>
										</font>
									</p>
									<div class="itemizedlist">
										<ul class="itemizedlist" style="list-style-type: circle; ">
											<li class="listitem">
												<p>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">
															后缀空间压缩。
														</font>
													</font>
												</p>
											</li>
											<li class="listitem">
												<p>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">
															前缀空间压缩。
														</font>
													</font>
												</p>
											</li>
											<li class="listitem">
												<p>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">
															使用一位存储值为零的数字。
														</font>
													</font>
												</p>
											</li>
											<li class="listitem">
												<p>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">
															如果整数列中的值具有较小的范围，则使用尽可能小的类型存储该列。</font>
														<font style="vertical-align: inherit;">例如，如果</font>
													</font><a class="link" href="data-types.html#integer-types" title="11.2.1整数类型（精确值） -  INTEGER，INT，SMALLINT，TINYINT，MEDIUMINT，BIGINT"><code
														 class="literal">BIGINT</code></a>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">列（八个字节）的</font>
													</font><a class="link" href="data-types.html#integer-types" title="11.2.1整数类型（精确值） -  INTEGER，INT，SMALLINT，TINYINT，MEDIUMINT，BIGINT"><code
														 class="literal">TINYINT</code></a>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">所有值都在</font>
													</font><code class="literal">-128</code>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">to </font>
														<font style="vertical-align: inherit;">的范围内，则</font>
														<font style="vertical-align: inherit;">可以将其存储为
														</font>
														<font style="vertical-align: inherit;">列（一个字节）
														</font>
													</font><code class="literal">127</code>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">。
														</font>
													</font>
												</p>
											</li>
											<li class="listitem">
												<p>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">
															如果列只有一小组可能的值，则数据类型将转换为
														</font>
													</font><a class="link" href="data-types.html#enum" title="11.4.4 ENUM类型"><code class="literal">ENUM</code></a>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">。
														</font>
													</font>
												</p>
											</li>
											<li class="listitem">
												<p>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">
															列可以使用前述压缩类型的任何组合。
														</font>
													</font>
												</p>
											</li>
										</ul>
									</div>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												可用于固定长度或动态长度的行。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>
						<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
							<div class="admon-title">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										注意
									</font>
								</font>
							</div>
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										虽然压缩表是只读的，因此您无法在表中更新或添加行，但DDL（数据定义语言）操作仍然有效。</font>
									<font style="vertical-align: inherit;">例如，您仍可以使用</font>
								</font><code class="literal">DROP</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">删除表并</font>
								</font><a class="link" href="sql-syntax.html#truncate-table" title="13.1.37 TRUNCATE TABLE语法"><code class="literal">TRUNCATE
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">清空表。
									</font>
								</font>
							</p>
						</div>

					</div>

				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-table-problems"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.2.4 MyISAM表问题</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<div class="toc">
						<dl class="toc"><dt><span class="section"><a href="storage-engines.html#corrupted-myisam-tables">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.4.1损坏的MyISAM表</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#myisam-table-close">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.4.2表格未正确关闭的问题</font>
										</font>
									</a></span></dt></dl>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								MySQL用于存储数据的文件格式已经过广泛测试，但始终存在可能导致数据库表损坏的情况。</font>
							<font style="vertical-align: inherit;">以下讨论描述了如何发生这种情况以及如何处理它。
							</font>
						</font>
					</p>
					<div class="section">

						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="corrupted-myisam-tables"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.4.1损坏的MyISAM表</font>
										</font>
									</h4>
								</div>
							</div>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									即使</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表格格式非常可靠（SQL语句所做的所有更改都是在语句返回之前写入的），如果发生以下任何事件，您仍然可能会损坏表格：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												该</font>
										</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">mysqld的</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">进程在写中间被杀害。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												发生意外的计算机关闭（例如，计算机已关闭）。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												硬件故障。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												您正在使用外部程序（例如
											</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">）来修改服务器同时修改的表。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												MySQL或</font>
										</font><code class="literal">MyISAM</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												代码</font>
											<font style="vertical-align: inherit;">中的软件错误</font>
											<font style="vertical-align: inherit;">。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									腐败表的典型症状是：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												从表中选择数据时出现以下错误：
											</font>
										</font>
									</p>
									<pre data-lang="none" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">表的密钥文件不正确：'...'。</font><font style="vertical-align: inherit;">尝试修复它
</font></font></pre>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												查询在表中找不到行或返回不完整的结果。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									您可以</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">使用该</font>
							</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK
									TABLE</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">语句</font>
								<font style="vertical-align: inherit;">检查</font>
								<font style="vertical-align: inherit;">表</font>
								<font style="vertical-align: inherit;">的运行状况</font>
								<font style="vertical-align: inherit;">，并</font>
								<font style="vertical-align: inherit;">使用该</font>
								<font style="vertical-align: inherit;">表修复损坏的</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表
								</font>
							</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
									TABLE</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">当
								</font>
							</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqld</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">未运行时，您还可以使用</font>
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisamchk</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">命令</font>
								<font style="vertical-align: inherit;">检查或修复表</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">请参见</font>
							</font><a class="xref" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第13.7.3.2节“检查表语法”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，
								</font>
							</font><a class="xref" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第13.7.3.5节“修复表语法”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">和</font>
							</font><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第4.6.4节“ </font>
								</font><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisamchk</font>
										</font>
									</strong></span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;"> - MyISAM表维护实用程序”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									如果您的表经常损坏，您应该尝试确定为什么会发生这种情况。</font>
								<font style="vertical-align: inherit;">最重要的是要知道表是否因服务器崩溃而损坏。</font>
								<font style="vertical-align: inherit;">您可以通过</font>
							</font><code class="literal">restarted mysqld</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">在错误日志中</font>
								<font style="vertical-align: inherit;">查找最近的</font>
								<font style="vertical-align: inherit;">消息来</font>
								<font style="vertical-align: inherit;">轻松验证这一点
								</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">如果存在此类消息，则表损坏很可能是服务器死亡的结果。</font>
								<font style="vertical-align: inherit;">否则，在正常操作期间可能发生损坏。</font>
								<font style="vertical-align: inherit;">这是一个错误。</font>
								<font style="vertical-align: inherit;">您应该尝试创建一个可重现的测试用例来演示该问题。</font>
								<font style="vertical-align: inherit;">请参见</font>
							</font><a class="xref" href="error-handling.html#crashing" title="B.4.3.3如果MySQL不断崩溃该怎么办">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第B.4.3.3节“如果MySQL不断崩溃该怎么办”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，以及
								</font>
							</font><a class="xref" href="extending-mysql.html#porting" title="29.5调试和移植MySQL">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第29.5节“调试和移植MySQL”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="myisam-table-close"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.2.4.2表格未正确关闭的问题</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									每个</font>
							</font><code class="literal">MyISAM</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">索引文件（</font>
							</font><code class="filename">.MYI</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">文件）在标头中都有一个计数器，可用于检查表是否已正确关闭。</font>
								<font style="vertical-align: inherit;">如果你从下面的警告
								</font>
							</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK
									TABLE</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">或
								</font>
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisamchk的</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，这意味着这个计数器已经不同步：
								</font>
							</font>
						</p>
						<pre data-lang="none" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">客户正在使用或未正确关闭表
</font></font></pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									此警告并不一定意味着表已损坏，但您至少应检查该表。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									该计数器的工作原理如下：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												第一次在MySQL中更新表时，索引文件头中的计数器会递增。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												在进一步更新期间，计数器不会更改。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												当表的最后一个实例关闭时（因为</font>
										</font><a class="link" href="sql-syntax.html#flush-tables"><code class="literal">FLUSH TABLES</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">执行</font>
											<font style="vertical-align: inherit;">了
											</font>
											<font style="vertical-align: inherit;">操作或者因为表缓存中没有空间），如果表已在任何时候更新，则计数器会递减。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												当您修复表格或检查表格并且发现它没有问题时，计数器将重置为零。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												为了避免与可能检查表的其他进程交互的问题，如果计数器为零，则计数器不会在关闭时递减。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									换句话说，只有在以下条件下，计数器才会变得不正确：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												一个</font>
										</font><code class="literal">MyISAM</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">表被复制，而第一发布</font>
										</font><a class="link" href="sql-syntax.html#lock-tables" title="13.3.6 LOCK TABLES和UNLOCK TABLES语法"><code
											 class="literal">LOCK TABLES</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">和
											</font>
										</font><a class="link" href="sql-syntax.html#flush-tables"><code class="literal">FLUSH TABLES</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												MySQL在更新和最终结束之间崩溃了。</font>
											<font style="vertical-align: inherit;">（该表可能仍然可以，因为MySQL总是在每个语句之间发出所有内容的写入。）
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
											 class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												修改了一个表</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
												 class="command"><strong>
														<font style="vertical-align: inherit;">--recover</font>
													</strong></span></a>
											<font style="vertical-align: inherit;">或</font>
										</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">myisamchk --update-state</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">，同时它被</font>
										</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">mysqld</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">使用</font>
											<font style="vertical-align: inherit;">。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												多</font>
										</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
													<font style="vertical-align: inherit;">
														<font style="vertical-align: inherit;">的mysqld</font>
													</font>
												</strong></span></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">服务器使用的桌子和一台服务器执行</font>
										</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
												TABLE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">或</font>
										</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK
												TABLE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">在桌子上，而这是由另一台服务器使用。</font>
											<font style="vertical-align: inherit;">在此设置中，</font>
										</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK
												TABLE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">尽管您可能会收到来自其他服务器的警告，但</font>
											<font style="vertical-align: inherit;">它仍然可以安全使用
											</font>
											<font style="vertical-align: inherit;">。</font>
											<font style="vertical-align: inherit;">但是，
											</font>
										</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
												TABLE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">应该避免，因为当一个服务器用新服务器替换数据文件时，其他服务器不知道这一点。
											</font>
										</font>
									</p>
									<p>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">
												通常，在多个服务器之间共享数据目录是个坏主意。</font>
											<font style="vertical-align: inherit;">有关</font>
											<font style="vertical-align: inherit;">其他讨论</font>
										</font><a class="xref" href="server-administration.html#multiple-servers" title="5.8在一台机器上运行多个MySQL实例">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">，</font>
											</font>
										</a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">请参见</font><a class="xref" href="server-administration.html#multiple-servers"
											 title="5.8在一台机器上运行多个MySQL实例">
												<font style="vertical-align: inherit;">第5.8节“在一台计算机上运行多个MySQL实例”</font>
											</a>
											<font style="vertical-align: inherit;">。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>

					</div>

				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="memory-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.3 MEMORY存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<a class="indexterm" name="idm140091630694400"></a><a class="indexterm" name="idm140091630693360"></a><a class="indexterm"
				 name="idm140091630692288"></a><a class="indexterm" name="idm140091630690800"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							的</font>
					</font><code class="literal">MEMORY</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎（以前称为
						</font>
					</font><code class="literal">HEAP</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）创建具有存储在存储器中的内容的专用的表。</font>
						<font style="vertical-align: inherit;">由于数据易受崩溃，硬件问题或断电影响，因此只能将这些表用作临时工作区或从其他表中提取数据的只读缓存。
						</font>
					</font>
				</p>
				<div class="table">
					<a name="idm140091630687184"></a>
					<p class="title"><b>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表16.4 MEMORY存储引擎功能</font>
							</font>
						</b></p>
					<div class="table-contents">
						<table frame="box" rules="all" summary="Features supported by the MEMORY storage engine.">
							<colgroup>
								<col width="60%">
								<col width="40%">
							</colgroup>
							<thead>
								<tr>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">特征</font>
										</font>
									</th>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">支持</font>
										</font>
									</th>
								</tr>
							</thead>
							<tbody>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">B树索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">备份/时间点恢复</font>
												</font>
											</strong></span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">（在服务器中实现，而不是在存储引擎中实现。）</font>
										</font>
									</td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">群集数据库支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">聚集索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">压缩数据</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">数据缓存</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">N / A</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">加密数据</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是（通过加密功能在服务器中实现。）</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">外键支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">全文搜索索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">地理空间数据类型支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">地理空间索引支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">哈希索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">索引缓存</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">N / A</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">锁定粒度</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">表</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">MVCC</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">复制支持</font>
												</font>
											</strong></span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">（在服务器中实现，而不是在存储引擎中实现。）</font>
										</font>
									</td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">有限（请参阅本节后面的讨论。）</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">存储限制</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">内存</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">T树索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">交易</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">更新数据字典的统计信息</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
							</tbody>
						</table>
					</div>

				</div>
				<br class="table-break">
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-compared-cluster" title="何时使用MEMORY或NDB群集">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">何时使用MEMORY或NDB群集</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-partitioning" title="分区">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">分区</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-performance-characteristics" title="性能特点">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">性能特点</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-characteristics-of-memory-tables" title="记忆表的特征">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">记忆表的特征</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-ddl-operations-for-memory-tables" title="MEMORY表的DDL操作">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">MEMORY表的DDL操作</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-indexes" title="索引">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">索引</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-user-created-and-temporary-tables" title="用户创建的和临时表">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">用户创建的和临时表</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-loading-data" title="加载数据中">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">加载数据中</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-tables-replication" title="内存表和复制">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">内存表和复制</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-managing-memory-use" title="管理内存使用">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">管理内存使用</font>
									</font>
								</a></p>
						</li>
						<li class="listitem">
							<p><a class="xref" href="storage-engines.html#memory-storage-engine-additional-resources" title="其他资源">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">其他资源</font>
									</font>
								</a></p>
						</li>
					</ul>
				</div>

				<div class="simplesect">

					<div class="titlepage">
						<div>

							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-compared-cluster"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">何时使用MEMORY或NDB群集</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								希望将使用</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎的</font>
							<font style="vertical-align: inherit;">应用程序部署到
							</font>
							<font style="vertical-align: inherit;">重要，高可用或频繁更新的数据的开发人员应考虑NDB Cluster是否是更好的选择。</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">引擎的</font>
							<font style="vertical-align: inherit;">典型用例
							</font>
							<font style="vertical-align: inherit;">涉及以下特征：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											涉及临时，非关键数据（如会话管理或缓存）的操作。</font>
										<font style="vertical-align: inherit;">当MySQL服务器暂停或重新启动时，</font>
									</font><code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中</font>
										<font style="vertical-align: inherit;">的数据</font>
										<font style="vertical-align: inherit;">将丢失。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											内存存储，可实现快速访问和低延迟。</font>
										<font style="vertical-align: inherit;">数据卷可以完全适合内存，而不会导致操作系统更换虚拟内存页。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											只读或主要读取数据访问模式（有限更新）。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								NDB Cluster提供</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">与具有更高性能级别</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">引擎</font>
							<font style="vertical-align: inherit;">相同的功能
							</font>
							<font style="vertical-align: inherit;">，并提供以下不具备的其他功能
							</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											行级锁定和多线程操作，可在客户端之间实现低争用。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											即使包含写入的语句混合，也具有可伸缩性。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											用于数据持久性的可选磁盘备份操作。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											无共享架构和多主机操作，无单点故障，可实现99.999％的可用性。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											跨节点自动分配数据; </font>
										<font style="vertical-align: inherit;">应用程序开发人员无需制作自定义分片或分区解决方案。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											支持不支持的可变长度数据类型（包括
										</font>
									</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">和
										</font>
									</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">）
										</font>
									</font><code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>

				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-partitioning"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">分区</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> 表格无法分区。
							</font>
						</font>
					</p>
				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-performance-characteristics"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">性能特点</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在处理更新时，单线程执行和表锁开销导致的争用会限制性能。</font>
							<font style="vertical-align: inherit;">这会在负载增加时限制可伸缩性，特别是对于包含写入的语句混合。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								尽管对</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								表</font>
							<font style="vertical-align: inherit;">进行了内存处理</font>
							<font style="vertical-align: inherit;">，但它们不一定比</font>
						</font><a class="link" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎"><code class="literal">InnoDB</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">繁忙服务器上的表，通用查询或读/写工作负载</font>
							<font style="vertical-align: inherit;">更快
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">特别是，执行更新所涉及的表锁定可能会减慢</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">来自多个会话</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">表的</font>
							<font style="vertical-align: inherit;">并发使用</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								根据对</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">执行的查询类型
							</font>
							<font style="vertical-align: inherit;">，您可以创建索引作为默认哈希数据结构（用于基于唯一键查找单个值）或通用B树数据结构（用于各种类型）涉及平等，不等式或范围运算符的查询，例如小于或大于）。</font>
							<font style="vertical-align: inherit;">以下部分说明了创建这两种索引的语法。</font>
							<font style="vertical-align: inherit;">常见的性能问题是在B树索引更有效的工作负载中使用默认哈希索引。
							</font>
						</font>
					</p>
				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-characteristics-of-memory-tables"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">记忆表的特征</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								该</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎不磁盘上创建任何文件。</font>
							<font style="vertical-align: inherit;">表定义存储在MySQL数据字典中。
							</font>
						</font>
					</p>
					<p>
						<code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> 表具有以下特征：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;"></font><code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">
											空间以</font>
										<font style="vertical-align: inherit;">小块分配。</font>
										<font style="vertical-align: inherit;">表对插入使用100％动态哈希。</font>
										<font style="vertical-align: inherit;">不需要溢出区域或额外的密钥空间。</font>
										<font style="vertical-align: inherit;">免费列表不需要额外的空间。</font>
										<font style="vertical-align: inherit;">已删除的行将放入链接列表中，并在向表中插入新数据时重复使用。
										</font>
									</font><code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表也​​没有通常与散列表中的删除和插入相关的问题。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表使用固定长度的行存储格式。</font>
										<font style="vertical-align: inherit;">可变长度类型，例如
										</font>
									</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">使用固定长度存储。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表不能包含
										</font>
									</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或
										</font>
									</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">列。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">包括对</font>
									</font><code class="literal">AUTO_INCREMENT</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">列的</font>
										<font style="vertical-align: inherit;">支持
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											非</font>
									</font><code class="literal">TEMPORARY</code> <code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											表格在所有客户端之间共享，就像任何其他非</font>
									</font><code class="literal">TEMPORARY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表格一样。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>

				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-ddl-operations-for-memory-tables"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">MEMORY表的DDL操作</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要创建</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表，请在语句</font>
						</font><code class="literal">ENGINE=MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">上
							</font>
							<font style="vertical-align: inherit;">指定子句
							</font>
						</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE t（i INT）ENGINE = MEMORY;
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如引擎名称所示，</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表存储在内存中。</font>
							<font style="vertical-align: inherit;">它们默认使用哈希索引，这使得它们对于单值查找非常快，并且对于创建临时表非常有用。</font>
							<font style="vertical-align: inherit;">但是，当服务器关闭时，存储在</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表中的</font>
							<font style="vertical-align: inherit;">所有行都将</font>
							<font style="vertical-align: inherit;">丢失。</font>
							<font style="vertical-align: inherit;">表本身继续存在，因为它们的定义存储在MySQL数据字典中，但是当服务器重新启动时它们是空的。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								此示例显示了如何创建，使用和删除
							</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">mysql&gt; </font><font style="vertical-align: inherit;">
mysql&gt; </font><font style="vertical-align: inherit;">
mysql&gt;</font></font><strong class="userinput"><code>CREATE TABLE test ENGINE=MEMORY</code></strong>
           <strong class="userinput"><code>SELECT ip,SUM(downloads) AS down</code></strong>
           <strong class="userinput"><code>FROM log_table GROUP BY ip;</code></strong><font style="vertical-align: inherit;"></font><strong class="userinput"><code>SELECT COUNT(ip),AVG(down) FROM test;</code></strong><font style="vertical-align: inherit;"></font><strong class="userinput"><code>DROP TABLE test;</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;"></font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">
								的最大大小</font>
							<font style="vertical-align: inherit;">受</font>
						</font><a class="link" href="server-administration.html#sysvar_max_heap_table_size"><code class="literal">max_heap_table_size</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">系统变量的</font>
							<font style="vertical-align: inherit;">限制，</font>
							<font style="vertical-align: inherit;">系统变量的默认值为16MB。</font>
							<font style="vertical-align: inherit;">要对</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">强制执行不同的大小限制</font>
							<font style="vertical-align: inherit;">，请更改此变量的值。</font>
							<font style="vertical-align: inherit;">在效果的值
							</font>
						</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，或随后的
							</font>
						</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或
							</font>
						</font><a class="link" href="sql-syntax.html#truncate-table" title="13.1.37 TRUNCATE TABLE语法"><code class="literal">TRUNCATE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，是用于表的寿命值。</font>
							<font style="vertical-align: inherit;">服务器重新启动还会将现有</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">的最大大小设置</font>
							<font style="vertical-align: inherit;">为全局
							</font>
						</font><a class="link" href="server-administration.html#sysvar_max_heap_table_size"><code class="literal">max_heap_table_size</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">值。</font>
							<font style="vertical-align: inherit;">您可以设置各个表的大小，如本节后面所述。
							</font>
						</font>
					</p>
				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-indexes"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">索引</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								该</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎支持
							</font>
						</font><code class="literal">HASH</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和</font>
						</font><code class="literal">BTREE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">索引。</font>
							<font style="vertical-align: inherit;">您可以通过添加</font>
						</font><code class="literal">USING</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">如下所示</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">子句为</font>
							<font style="vertical-align: inherit;">给定索引指定一个或另一个
							</font>
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE查找</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    （id INT，INDEX USING HASH（id））</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    ENGINE = MEMORY;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CREATE TABLE查找</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    （id INT，索引使用BTREE（id））</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    ENGINE = MEMORY;</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								有关B树和哈希索引的一般特性，请参见
							</font>
						</font><a class="xref" href="optimization.html#mysql-indexes" title="8.3.1 MySQL如何使用索引">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第8.3.1节“MySQL如何使用索引”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> 每个表最多可以有64个索引，每个索引有16列，最大密钥长度为3072字节。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表哈希索引具有高度密钥重复（许多索引条目包含相同的值），则对表影响键值和所有删除的更新会明显变慢。</font>
							<font style="vertical-align: inherit;">这种减速程度与重复程度成正比（或与指数基数成反比）。</font>
							<font style="vertical-align: inherit;">您可以使用</font>
						</font><code class="literal">BTREE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">索引来避免此问题。
							</font>
						</font>
					</p>
					<p>
						<code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表可以有非唯一键。</font>
							<font style="vertical-align: inherit;">（这是哈希索引实现的一个不常见的功能。）
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								索引的列可以包含</font>
						</font><code class="literal">NULL</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								值。
							</font>
						</font>
					</p>
				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-user-created-and-temporary-tables"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">用户创建的和临时表</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表内容存储在内存中，该内存是</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表与服务器在处理查询时动态创建的内部临时表共享</font>
							<font style="vertical-align: inherit;">的属性</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">但是，这两种表的不同之处在于</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表不受存储转换的影响，而内部临时表是：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果内部临时表变得太大，服务器会自动将其转换为磁盘存储，如
										</font>
									</font><a class="xref" href="optimization.html#internal-temporary-tables" title="8.4.4 MySQL中的内部临时表使用">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">第8.4.4节“MySQL中的内部临时表使用”中所述</font>
										</font>
									</a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											用户创建的</font>
									</font><code class="literal">MEMORY</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表永远不会转换为磁盘表。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>

				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-loading-data"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">加载数据中</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在MySQL服务器启动时</font>
							<font style="vertical-align: inherit;">填充</font>
							<font style="vertical-align: inherit;">表，可以使用该
							</font>
						</font><a class="link" href="server-administration.html#option_mysqld_init-file"><code class="option">--init-file</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项。</font>
							<font style="vertical-align: inherit;">例如，您可以将诸如</font>
						</font><a class="link" href="sql-syntax.html#insert-select" title="13.2.6.1 INSERT ... SELECT语法"><code class="literal">INSERT
								INTO ...
								SELECT</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或之类的</font>
							<font style="vertical-align: inherit;">语句
							</font>
						</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD
								DATA</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">放入此文件中以从持久数据源加载表。</font>
							<font style="vertical-align: inherit;">请参见
							</font>
						</font><a class="xref" href="server-administration.html#server-options" title="5.1.7服务器命令选项">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第5.1.7节“服务器命令选项”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和</font>
						</font><a class="xref" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第13.2.7节“LOAD DATA语法”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-tables-replication"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">内存表和复制</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								服务器的</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表在关闭并重新启动时变为空。</font>
							<font style="vertical-align: inherit;">如果服务器是复制主服务器，则其从属服务器不知道这些表已变为空，因此如果从从属服务器上的表中选择数据，则会看到过时的内容。</font>
							<font style="vertical-align: inherit;">要同步主</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">和从</font>
							<font style="vertical-align: inherit;">表，当</font>
							<font style="vertical-align: inherit;">主
							</font>
							<font style="vertical-align: inherit;">表</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								自启动以来第一次使用表时，会将</font>
						</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句写入主服务器的二进制日志，以清空从服务器上的表。</font>
							<font style="vertical-align: inherit;">在主服务器重新启动和第一次使用表之间的间隔期间，从服务器仍然在表中过期数据。</font>
							<font style="vertical-align: inherit;">要避免此间隔，当直接查询从站可能返回过时数据时，请使用</font>
						</font><a class="link" href="server-administration.html#option_mysqld_init-file"><code class="option">--init-file</code></a>
						<font style="vertical-align: inherit;"></font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在启动时</font>
							<font style="vertical-align: inherit;">
								填充</font>
							<font style="vertical-align: inherit;">主服务器上</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">表的</font>
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-managing-memory-use"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">管理内存使用</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								服务器需要足够的内存来维护所有
							</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">正在使用的表。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果从</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表中</font>
							<font style="vertical-align: inherit;">删除单个行，则不会回收内存
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">仅在删除整个表时才回收内存。</font>
							<font style="vertical-align: inherit;">以前用于已删除行的内存将重新用于同一表中的新行。</font>
							<font style="vertical-align: inherit;">要</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在不再需要其内容时</font>
							<font style="vertical-align: inherit;">释放</font>
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">使用的所有内存</font>
							<font style="vertical-align: inherit;">，请执行
							</font>
						</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或
							</font>
						</font><a class="link" href="sql-syntax.html#truncate-table" title="13.1.37 TRUNCATE TABLE语法"><code class="literal">TRUNCATE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">删除所有行，或者完全删除表</font>
						</font><a class="link" href="sql-syntax.html#drop-table" title="13.1.32 DROP TABLE语法"><code class="literal">DROP
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">要释放已删除行使用的内存，请使用
							</font>
						</font><code class="literal">ALTER TABLE ENGINE=MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">强制表重建。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;"></font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">使用以下表达式计算表中</font>
							<font style="vertical-align: inherit;">
								一行所需的内存</font>
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">SUM_OVER_ALL_BTREE_KEYS（</font></font><em class="replaceable"><code>max_length_of_key</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+ sizeof（char *）* 4）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ SUM_OVER_ALL_HASH_KEYS（sizeof（char *）* 2）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ ALIGN（</font></font><em class="replaceable"><code>length_of_row</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">+ 1，sizeof（char *））
</font></font></pre>
					<p>
						<code class="literal">ALIGN()</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表示使行长度成为</font>
						</font><code class="literal">char</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">指针大小</font>
							<font style="vertical-align: inherit;">的精确倍数的向上舍入因子
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font><code class="literal">sizeof(char*)</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在32位计算机上是4，在64位计算机上是8。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如前所述，
							</font>
						</font><a class="link" href="server-administration.html#sysvar_max_heap_table_size"><code class="literal">max_heap_table_size</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">系统变量设置</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">的最大大小限制
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">要控制各个表的最大大小，请在创建每个表之前设置此变量的会话值。</font>
							<font style="vertical-align: inherit;">（不要更改全局
							</font>
						</font><a class="link" href="server-administration.html#sysvar_max_heap_table_size"><code class="literal">max_heap_table_size</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">值，除非您打算将值用于</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								所有客户端创建的</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">。）以下示例创建两个
							</font>
							<font style="vertical-align: inherit;">表，最大大小分别为1MB和2MB：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>SET max_heap_table_size = 1024*1024;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询正常，0行受影响（0.00秒）</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>CREATE TABLE t1 (id INT, UNIQUE(id)) ENGINE = MEMORY;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询OK，0行受影响（0.01秒）</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>SET max_heap_table_size = 1024*1024*2;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询正常，0行受影响（0.00秒）</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>CREATE TABLE t2 (id INT, UNIQUE(id)) ENGINE = MEMORY;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询正常，0行受影响（0.00秒）</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;"></font><a class="link" href="server-administration.html#sysvar_max_heap_table_size"><code
							 class="literal">max_heap_table_size</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">如果服务器重新启动，则</font>
							<font style="vertical-align: inherit;">
								两个表都将恢复为服务器的全局
							</font>
							<font style="vertical-align: inherit;">值。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								您还可以在</font>
						</font><code class="literal">MAX_ROWS</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表的</font>
						</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句中
							</font>
							<font style="vertical-align: inherit;">指定</font>
							<font style="vertical-align: inherit;">表选项，
							</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">以提供有关计划存储在其中的行数的提示。</font>
							<font style="vertical-align: inherit;">这不会使表增长超出
							</font>
						</font><a class="link" href="server-administration.html#sysvar_max_heap_table_size"><code class="literal">max_heap_table_size</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">值，这仍然作为最大表大小的约束。</font>
							<font style="vertical-align: inherit;">为了最大限度地灵活使用</font>
						</font><code class="literal">MAX_ROWS</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，请</font>
						</font><a class="link" href="server-administration.html#sysvar_max_heap_table_size"><code class="literal">max_heap_table_size</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">至少</font>
							<font style="vertical-align: inherit;">设置
							</font>
							<font style="vertical-align: inherit;">您希望每个</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								表能够增长的值。
							</font>
						</font>
					</p>
				</div>
				<div class="simplesect">
					<div class="titlepage">
						<div>
							<div class="simple">
								<h3 class="title"><a name="memory-storage-engine-additional-resources"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">其他资源</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								有关</font>
						</font><code class="literal">MEMORY</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎的</font>
							<font style="vertical-align: inherit;">论坛，</font>
							<font style="vertical-align: inherit;">请访问</font>
						</font><a class="ulink" href="https://forums.mysql.com/list.php?92" target="_top">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">https://forums.mysql.com/list.php?92</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="csv-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.4 CSV存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="storage-engines.html#se-csv-repair">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.4.1修复和检查CSV表</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#se-csv-limitations">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.4.2 CSV限制</font>
									</font>
								</a></span></dt></dl>
				</div>
				<a class="indexterm" name="idm140091630471408"></a><a class="indexterm" name="idm140091630470336"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在</font>
					</font><code class="literal">CSV</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用逗号分隔值格式的文本文件存储引擎存储数据。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">CSV</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎总是被编译到MySQL服务器。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要检查</font>
					</font><code class="literal">CSV</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎</font>
						<font style="vertical-align: inherit;">的源代码</font>
						<font style="vertical-align: inherit;">，请查看</font>
					</font><code class="filename">storage/csv</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">MySQL源代码分发</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">目录。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建</font>
					</font><code class="literal">CSV</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表时，服务器会创建一个纯文本数据文件，其名称以表名开头并具有</font>
					</font><code class="filename">.CSV</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">扩展名。</font>
						<font style="vertical-align: inherit;">将数据存储到表中时，存储引擎会以逗号分隔值格式将其保存到数据文件中。
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>CREATE TABLE test (i INT NOT NULL, c CHAR(10) NOT NULL)</code></strong>
       <strong class="userinput"><code>ENGINE = CSV;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询正常，0行受影响（0.06秒）</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>INSERT INTO test VALUES(1,'record one'),(2,'record two');</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询OK，2行受影响（0.05秒）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
记录：2个重复：0个警告：0</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>SELECT * FROM test;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+  -  + ------------ +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">我| </font><font style="vertical-align: inherit;">c |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+  -  + ------------ +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">1 | </font><font style="vertical-align: inherit;">记录一个|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">2 | </font><font style="vertical-align: inherit;">记录两个|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+  -  + ------------ +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2行（0.00秒）</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建</font>
					</font><code class="literal">CSV</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表还会创建相应的元文件，该元文件存储表的状态和表中存在的行数。</font>
						<font style="vertical-align: inherit;">此文件的名称与具有扩展名的表的名称相同</font>
					</font><code class="filename">CSM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果检查</font>
					</font><code class="filename">test.CSV</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">通过执行前面的语句创建的数据库目录中</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">文件，其内容应如下所示：
						</font>
					</font>
				</p>
				<pre data-lang="none" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">“1”，“记录一”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
“2”，“记录2”</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							这种格式可以通过电子表格应用程序（如Microsoft Excel或StarOffice Calc）读取甚至编写。
						</font>
					</font>
				</p>
				<div class="section">

					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="se-csv-repair"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.4.1修复和检查CSV表</font>
									</font>
								</h3>
							</div>
						</div>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								该</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎支持
							</font>
						</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句来验证，如果可能，修复损坏的</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								运行</font>
						</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								语句时，</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">将通过查找正确的字段分隔符，转义字段（匹配或缺少引号），与表定义相比的正确字段数以及是否存在相应的</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">元</font>
							<font style="vertical-align: inherit;">文件来检查文件的有效性</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">发现的第一个无效行将报告错误。</font>
							<font style="vertical-align: inherit;">检查有效表会产生如下所示的输出：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>CHECK TABLE csvtest;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + ---------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">表| </font><font style="vertical-align: inherit;">Op | </font><font style="vertical-align: inherit;">Msg_type | </font><font style="vertical-align: inherit;">Msg_text |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + ---------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">test.csvtest | </font><font style="vertical-align: inherit;">检查| </font><font style="vertical-align: inherit;">状态| </font><font style="vertical-align: inherit;">好的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + ---------- +</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								检查损坏的表会返回错误：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>CHECK TABLE csvtest;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + ---------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">表| </font><font style="vertical-align: inherit;">Op | </font><font style="vertical-align: inherit;">Msg_type | </font><font style="vertical-align: inherit;">Msg_text |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + ---------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">test.csvtest | </font><font style="vertical-align: inherit;">检查| </font><font style="vertical-align: inherit;">错误| </font><font style="vertical-align: inherit;">腐败|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + ---------- +</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果检查失败，表将被标记为崩溃（损坏）。</font>
							<font style="vertical-align: inherit;">一旦表被标记为已损坏，它将在您下次运行</font>
						</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或执行</font>
						</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句</font>
							<font style="vertical-align: inherit;">时自动修复</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">运行时将显示相应的损坏状态和新状态</font>
						</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>CHECK TABLE csvtest;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + --------------- ------------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">表| </font><font style="vertical-align: inherit;">Op | </font><font style="vertical-align: inherit;">Msg_type | </font><font style="vertical-align: inherit;">Msg_text |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + --------------- ------------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">test.csvtest | </font><font style="vertical-align: inherit;">检查| </font><font style="vertical-align: inherit;">警告| </font><font style="vertical-align: inherit;">表被标记为崩溃|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">test.csvtest | </font><font style="vertical-align: inherit;">检查| </font><font style="vertical-align: inherit;">状态| </font><font style="vertical-align: inherit;">好的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + ------- + ---------- + --------------- ------------- +</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要修复表，请使用</font>
						</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">从现有</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">数据中</font>
							<font style="vertical-align: inherit;">复制尽可能多的有效行
							</font>
							<font style="vertical-align: inherit;">，然后使用</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">恢复的行</font>
							<font style="vertical-align: inherit;">替换现有</font>
							<font style="vertical-align: inherit;">文件。</font>
							<font style="vertical-align: inherit;">超出损坏数据的任何行都将丢失。
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>REPAIR TABLE csvtest;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + -------- + ---------- + ---------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">表| </font><font style="vertical-align: inherit;">Op | </font><font style="vertical-align: inherit;">Msg_type | </font><font style="vertical-align: inherit;">Msg_text |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + -------- + ---------- + ---------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">test.csvtest | </font><font style="vertical-align: inherit;">修理| </font><font style="vertical-align: inherit;">状态| </font><font style="vertical-align: inherit;">好的</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+ -------------- + -------- + ---------- + ---------- +</font></font><font></font>
</pre>
					<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">

						<div class="admon-title">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									警告
								</font>
							</font>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在修复期间，只将</font>
							</font><code class="literal">CSV</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									文件中</font>
								<font style="vertical-align: inherit;">的行</font>
								<font style="vertical-align: inherit;">直到第一个损坏的行复制到新表。</font>
								<font style="vertical-align: inherit;">从第一个损坏的行到表的末尾的所有其他行都被删除，甚至是有效的行。
								</font>
							</font>
						</p>
					</div>

				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="se-csv-limitations"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.4.2 CSV限制</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								该</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎不支持索引。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								该</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎不支持分区。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								使用</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								存储引擎</font>
							<font style="vertical-align: inherit;">创建的所有表</font>
							<font style="vertical-align: inherit;">必须具有</font>
						</font><code class="literal">NOT NULL</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">所有列</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">属性。
							</font>
						</font>
					</p>
				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="archive-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.5 ARCHIVE存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<a class="indexterm" name="idm140091630420480"></a><a class="indexterm" name="idm140091630419440"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎产生大量未索引数据存储在一个非常小的足迹专用表。
						</font>
					</font>
				</p>
				<div class="table">
					<a name="idm140091630416608"></a>
					<p class="title"><b>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表16.5 ARCHIVE存储引擎功能</font>
							</font>
						</b></p>
					<div class="table-contents">
						<table frame="box" rules="all" summary="Features supported by the ARCHIVE storage engine.">
							<colgroup>
								<col width="60%">
								<col width="40%">
							</colgroup>
							<thead>
								<tr>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">特征</font>
										</font>
									</th>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">支持</font>
										</font>
									</th>
								</tr>
							</thead>
							<tbody>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">B树索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">备份/时间点恢复</font>
												</font>
											</strong></span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">（在服务器中实现，而不是在存储引擎中实现。）</font>
										</font>
									</td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">群集数据库支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">聚集索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">压缩数据</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">数据缓存</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">加密数据</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是（通过加密功能在服务器中实现。）</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">外键支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">全文搜索索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">地理空间数据类型支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">地理空间索引支持</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">哈希索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">索引缓存</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">锁定粒度</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">行</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">MVCC</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">复制支持</font>
												</font>
											</strong></span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">（在服务器中实现，而不是在存储引擎中实现。）</font>
										</font>
									</td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">存储限制</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">T树索引</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">交易</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">没有</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><span class="bold"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">更新数据字典的统计信息</font>
												</font>
											</strong></span></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">是</font>
										</font>
									</td>
								</tr>
							</tbody>
						</table>
					</div>

				</div>
				<br class="table-break">
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎包含在MySQL二进制分发。</font>
						<font style="vertical-align: inherit;">要从源代码构建MySQL，要启用此存储引擎，请</font>
						<font style="vertical-align: inherit;">使用该
						</font>
						<font style="vertical-align: inherit;">
							选项</font>
						<font style="vertical-align: inherit;">调用</font>
					</font><span class="command"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">CMake</font>
							</font>
						</strong></span>
					<font style="vertical-align: inherit;"></font><a class="link" href="installing.html#option_cmake_storage_engine_options"
					 title="存储引擎选项"><code class="option">-DWITH_ARCHIVE_STORAGE_ENGINE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要检查</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎</font>
						<font style="vertical-align: inherit;">的源代码</font>
						<font style="vertical-align: inherit;">，请查看</font>
					</font><code class="filename">storage/archive</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">MySQL源代码分发</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">目录。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							您可以</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用该</font>
					</font><a class="link" href="sql-syntax.html#show-engines" title="13.7.6.16 SHOW ENGINES语法"><code class="literal">SHOW
							ENGINES</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							语句</font>
						<font style="vertical-align: inherit;">检查</font>
						<font style="vertical-align: inherit;">存储引擎是否可用</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表时，存储引擎会创建名称以表名开头的文件。</font>
						<font style="vertical-align: inherit;">数据文件的扩展名为</font>
					</font><code class="filename">.ARZ</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">在
						</font>
					</font><code class="filename">.ARN</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">优化过程中操作文件可能会出现。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎支持
						</font>
					</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，
						</font>
					</font><a class="link" href="sql-syntax.html#replace" title="13.2.9 REPLACE语法"><code class="literal">REPLACE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，而不是
						</font>
					</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">或
						</font>
					</font><a class="link" href="sql-syntax.html#update" title="13.2.12 UPDATE语法"><code class="literal">UPDATE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">它支持
						</font>
					</font><code class="literal">ORDER BY</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">操作，
						</font>
					</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">列和空间数据类型（请参见</font>
					</font><a class="xref" href="data-types.html#spatial-type-overview" title="11.5.1空间数据类型">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第11.5.1节“空间数据类型”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）。</font>
						<font style="vertical-align: inherit;">不支持地理空间参考系统。</font>
						<font style="vertical-align: inherit;">该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							发动机采用了行级锁。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎支持
						</font>
					</font><code class="literal">AUTO_INCREMENT</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">column属性。</font>
						<font style="vertical-align: inherit;">该
						</font>
					</font><code class="literal">AUTO_INCREMENT</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">列可以具有唯一或非唯一索引。</font>
						<font style="vertical-align: inherit;">尝试在任何其他列上创建索引会导致错误。</font>
						<font style="vertical-align: inherit;">该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎还支持</font>
						<font style="vertical-align: inherit;">语句中</font>
						<font style="vertical-align: inherit;">的</font>
					</font><code class="literal">AUTO_INCREMENT</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">table选项，
						</font>
					</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">以指定新表的初始序列值或分别重置现有表的序列值。
						</font>
					</font>
				</p>
				<p>
					<code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">不支持将值插入</font>
					</font><code class="literal">AUTO_INCREMENT</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">小于当前最大列值的列。</font>
						<font style="vertical-align: inherit;">尝试这样做会导致
						</font>
					</font><a class="link" href="error-handling.html#error_er_dup_key"><code class="literal">ER_DUP_KEY</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">错误。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎将忽略
						</font>
					</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">列，如果没有要求，并扫描他们过去在阅读它们。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎不支持分区。
						</font>
					</font>
				</p>
				<p>
					<span class="bold"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">存储：</font>
							</font>
						</strong></span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">行在插入时被压缩。</font>
						<font style="vertical-align: inherit;">该</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎使用
						</font>
					</font><code class="literal">zlib</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">无损数据压缩（参见
						</font>
					</font><a class="ulink" href="http://www.zlib.net/" target="_top">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> http://www.zlib.net/</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）。</font>
						<font style="vertical-align: inherit;">您可以使用它
						</font>
					</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">来分析表格并将其打包成较小的格式（出于使用原因
						</font>
					</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，请参阅本节后面的内容）。</font>
						<font style="vertical-align: inherit;">引擎也支持</font>
					</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">有几种类型的插入使用：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										一个</font>
								</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">声明只是推行成一个压缩缓冲，并且缓冲刷新是必要的。</font>
									<font style="vertical-align: inherit;">插入缓冲区受锁保护。</font>
									<font style="vertical-align: inherit;">A </font>
								</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">强制发生冲洗。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										批量插入只有在完成后才可见，除非同时出现其他插入，在这种情况下可以部分看到。</font>
								</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">除非在装载时发生正常插入，否则</font>
									<font style="vertical-align: inherit;">A </font>
									<font style="vertical-align: inherit;">永远不会导致批量插入的冲洗。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<span class="bold"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">检索</font>
							</font>
						</strong></span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">：在检索时，行按需解压缩; </font>
						<font style="vertical-align: inherit;">没有行缓存。</font>
						<font style="vertical-align: inherit;">一个
						</font>
					</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">操作执行一个完整的表扫描：当</font>
					</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">发生时，它发现有多少行是目前可用的和读取的行数。</font>
					</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">以一致的读数执行。</font>
						<font style="vertical-align: inherit;">请注意，</font>
					</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">插入过程</font>
						<font style="vertical-align: inherit;">中的大量
						</font>
						<font style="vertical-align: inherit;">语句会导致压缩性能下降，除非仅使用批量插入。</font>
						<font style="vertical-align: inherit;">要获得更好的压缩效果，可以使用
						</font>
					</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">或
						</font>
					</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
					</font><code class="literal">ARCHIVE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">报告的表中
						</font>
						<font style="vertical-align: inherit;">的行数
						</font>
					</font><a class="link" href="sql-syntax.html#show-table-status" title="13.7.6.36 SHOW TABLE STATUS语法"><code class="literal">SHOW
							TABLE STATUS</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">始终准确。</font>
						<font style="vertical-align: inherit;">请参见</font>
					</font><a class="xref" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.7.3.4节“OPTIMIZE TABLE语法”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，
						</font>
					</font><a class="xref" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.7.3.5节“修复表语法”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，以及
						</font>
					</font><a class="xref" href="sql-syntax.html#show-table-status" title="13.7.6.36 SHOW TABLE STATUS语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.7.6.36节“显示表状态语法”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091630297392"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">其他资源</font>
					</font>
				</h3>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										有关</font>
								</font><code class="literal">ARCHIVE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">存储引擎的</font>
									<font style="vertical-align: inherit;">论坛，</font>
									<font style="vertical-align: inherit;">请访问</font>
								</font><a class="ulink" href="https://forums.mysql.com/list.php?112" target="_top">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">https://forums.mysql.com/list.php?112</font>
									</font>
								</a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="blackhole-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.6 BLACKHOLE存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<a class="indexterm" name="idm140091630292960"></a><a class="indexterm" name="idm140091630291872"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎作为一个
						</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">黑洞</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ”</font>
						</font>
					</span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，它接受的数据，但它扔了出去，不存储。</font>
						<font style="vertical-align: inherit;">检索始终返回空结果：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>CREATE TABLE test(i INT, c CHAR(10)) ENGINE = BLACKHOLE;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询正常，0行受影响（0.03秒）</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>INSERT INTO test VALUES(1,'record one'),(2,'record two');</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询正常，2行受影响（0.00秒）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
记录：2个重复：0个警告：0</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>SELECT * FROM test;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
空集（0.00秒）</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要从</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">源代码构建MySQL，</font>
						<font style="vertical-align: inherit;">要启用</font>
						<font style="vertical-align: inherit;">存储引擎，请</font>
						<font style="vertical-align: inherit;">使用该
						</font>
						<font style="vertical-align: inherit;">
							选项</font>
						<font style="vertical-align: inherit;">调用</font>
					</font><span class="command"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">CMake</font>
							</font>
						</strong></span>
					<font style="vertical-align: inherit;"></font><a class="link" href="installing.html#option_cmake_storage_engine_options"
					 title="存储引擎选项"><code class="option">-DWITH_BLACKHOLE_STORAGE_ENGINE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要检查</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎</font>
						<font style="vertical-align: inherit;">的源代码</font>
						<font style="vertical-align: inherit;">，请查看</font>
					</font><code class="filename">sql</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">MySQL源代码分发</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">目录。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表时，服务器在全局数据字典中创建表定义。</font>
						<font style="vertical-align: inherit;">没有与该表关联的文件。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎支持所有类型的索引。</font>
						<font style="vertical-align: inherit;">也就是说，您可以在表定义中包含索引声明。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎不支持分区。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							您可以</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用该</font>
					</font><a class="link" href="sql-syntax.html#show-engines" title="13.7.6.16 SHOW ENGINES语法"><code class="literal">SHOW
							ENGINES</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">语句</font>
						<font style="vertical-align: inherit;">检查</font>
						<font style="vertical-align: inherit;">存储引擎是否可用</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							插入</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表中不会存储任何数据，但如果启用了基于语句的二进制日志记录，则会记录SQL语句并将其复制到从属服务器。</font>
						<font style="vertical-align: inherit;">这可用作转发器或过滤器机制。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							假设您的应用程序需要从属端过滤规则，但首先将所有二进制日志数据传输到从属服务器会导致流量过大。</font>
						<font style="vertical-align: inherit;">在这种情况下，可以在主主机上设置</font>
						<font style="vertical-align: inherit;">其默认存储引擎</font>
						<font style="vertical-align: inherit;">的</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">虚拟</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ”</font>
						</font>
					</span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">从属进程，</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">如下所示：
						</font>
					</font>
				</p>
				<div class="figure">
					<a name="idm140091630271216"></a>
					<p class="title"><b>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">图16.1使用BLACKHOLE进行过滤的复制</font>
							</font>
						</b></p>
					<div class="figure-contents">

						<div class="mediaobject">
							<img src="images/blackhole-1.png" width="520" height="245" alt="使用BLACKHOLE进行复制进行过滤">
						</div>

					</div>

				</div>
				<br class="figure-break">
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							主机写入其二进制日志。</font>
						<font style="vertical-align: inherit;">的</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">虚设</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ” </font>
						</font>
					</span>
					<a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">的mysqld</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">过程是一个从机，施加的所需组合</font>
					</font><code class="literal">replicate-do-*</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><code class="literal">replicate-ignore-*</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">规则，并写入它自己的新的，过滤二进制日志。</font>
						<font style="vertical-align: inherit;">（请参见
						</font>
					</font><a class="xref" href="replication.html#replication-options" title="17.1.6复制和二进制日志记录选项和变量">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第17.1.6节“复制和二进制日志记录选项和变量”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。）此过滤日志将提供给从站。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							虚拟进程实际上并不存储任何数据，因此</font>
						<font style="vertical-align: inherit;">在复制主机上</font>
						<font style="vertical-align: inherit;">运行额外的</font>
					</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqld</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">进程会</font>
						<font style="vertical-align: inherit;">产生很少的处理开销
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">可以使用其他复制从站重复此类型的设置。
						</font>
					</font>
				</p>
				<p>
					<a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
					<font style="vertical-align: inherit;"></font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表的</font>
						<font style="vertical-align: inherit;">触发器
						</font>
						<font style="vertical-align: inherit;">按预期工作。</font>
						<font style="vertical-align: inherit;">但是，因为该</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表实际上并不存储任何数据，</font>
					</font><a class="link" href="sql-syntax.html#update" title="13.2.12 UPDATE语法"><code class="literal">UPDATE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">并且
						</font>
					</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">未激活触发器：</font>
					</font><code class="literal">FOR EACH ROW</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">触发器定义中</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">子句不适用，因为没有行。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;"></font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎的</font>
						<font style="vertical-align: inherit;">
							其他可能用途</font>
						<font style="vertical-align: inherit;">包括：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										验证转储文件语法。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										通过使用</font>
								</font><code class="literal">BLACKHOLE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">启用和不启用二进制日志记录的</font>
									<font style="vertical-align: inherit;">性能比较来测量二进制日志记录的开销</font>
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<code class="literal">BLACKHOLE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">本质上是一个
									</font>
								</font><span class="quote">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">“ </font>
									</font><span class="quote">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">无操作</font>
										</font>
									</span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;"> ”的</font>
									</font>
								</span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">存储引擎，因此可用于查找与存储引擎本身无关的性能瓶颈。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">发动机是交易感知的，在这个意义上，提交的事务都写入二进制日志和回滚事务都没有。
						</font>
					</font>
				</p>
				<p>
					<span class="bold"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">黑洞引擎和自动增量列</font>
							</font>
						</strong></span>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							Blackhole引擎是一种无操作引擎。</font>
						<font style="vertical-align: inherit;">使用Blackhole在桌面上执行的任何操作都不起作用。</font>
						<font style="vertical-align: inherit;">在考虑自动递增的主键列的行为时，应该记住这一点。</font>
						<font style="vertical-align: inherit;">引擎不会自动增加字段值，也不会保留自动增量字段状态。</font>
						<font style="vertical-align: inherit;">这对复制具有重要意义。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							请考虑以下所有三个条件适用的复制方案：
						</font>
					</font>
				</p>
				<div class="orderedlist">
					<ol class="orderedlist" type="1">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										在主服务器上有一个黑洞表，其中一个自动增量字段是主键。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										在从属服务器上存在相同的表但使用MyISAM引擎。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										插入将在主表中执行，而无需在</font>
								</font><code class="literal">INSERT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">语句本身或通过使用
									</font>
								</font><code class="literal">SET INSERT_ID</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">语句</font>
									<font style="vertical-align: inherit;">显式设置自动增量值
									</font>
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ol>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在这种情况下，复制将失败，主键列上出现重复的条目错误。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在基于语句的复制中，</font>
					</font><code class="literal">INSERT_ID</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">上下文事件中</font>
						<font style="vertical-align: inherit;">的值
						</font>
						<font style="vertical-align: inherit;">将始终相同。</font>
						<font style="vertical-align: inherit;">因此，由于尝试插入具有主键列的重复值的行，复制将失败。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在基于行的复制中，引擎为行返回的值对于每个插入始终是相同的。</font>
						<font style="vertical-align: inherit;">这将导致从服务器尝试使用主键列的相同值重播两个插入日志条目，因此复制将失败。
						</font>
					</font>
				</p>
				<p>
					<span class="bold"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">列过滤</font>
							</font>
						</strong></span>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							使用基于行的复制时，（</font>
					</font><a class="link" href="replication.html#sysvar_binlog_format"><code class="literal">binlog_format=ROW</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）时，支持表中缺少最后一列的从站，如</font>
					</font><a class="xref" href="replication.html#replication-features-differing-tables" title="17.4.1.9在主站和从站上使用不同的表定义进行复制">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第17.4.1.9节“使用主站和从站上的不同表定义进行复制”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">一</font><a class="xref" href="replication.html#replication-features-differing-tables"
						 title="17.4.1.9在主站和从站上使用不同的表定义进行复制">
							<font style="vertical-align: inherit;">节</font>
						</a>
						<font style="vertical-align: inherit;">中所述
						</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							此过滤在从属端工作，即在过滤掉列之前将列复制到从属。</font>
						<font style="vertical-align: inherit;">至少有两种情况不希望将列复制到从属：
						</font>
					</font>
				</p>
				<div class="orderedlist">
					<ol class="orderedlist" type="1">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										如果数据是机密的，那么从服务器就不应该访问它。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										如果主站有许多从站，则在发送到从站之前进行过滤可能会减少网络流量。
									</font>
								</font>
							</p>
						</li>
					</ol>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							使用</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎</font>
						<font style="vertical-align: inherit;">可以实现主列过滤
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">这是通过类似于如何实现主表过滤的方式执行的 - 通过使用
						</font>
					</font><code class="literal">BLACKHOLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎和
						</font>
					</font><a class="link" href="replication.html#option_mysqld_replicate-do-table"><code class="option">--replicate-do-table</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">或
						</font>
					</font><a class="link" href="replication.html#option_mysqld_replicate-ignore-table"><code class="option">--replicate-ignore-table</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">选项。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							主人的设置是：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE t1（public_col_1，...，public_col_N，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
                 secret_col_1，...，secret_col_M）ENGINE = MyISAM;</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							可信奴隶的设置是：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE t1（public_col_1，...，public_col_N）ENGINE = BLACKHOLE;
</font></font></pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							不受信任的从站的设置是：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE t1（public_col_1，...，public_col_N）ENGINE = MyISAM;</font></font></pre>
			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="merge-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.7 MERGE存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="storage-engines.html#merge-table-advantages">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.7.1 MERGE表的优点和缺点</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#merge-table-problems">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.7.2 MERGE表问题</font>
									</font>
								</a></span></dt></dl>
				</div>
				<a class="indexterm" name="idm140091630217664"></a><a class="indexterm" name="idm140091630216624"></a><a class="indexterm"
				 name="idm140091630215136"></a><a class="indexterm" name="idm140091630213648"></a><a class="indexterm" name="idm140091630212160"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							的</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎，也被称为
						</font>
					</font><code class="literal">MRG_MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">发动机，是相同的集合
						</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">可被用作一个表。
						</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">相同</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ”</font>
						</font>
					</span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表示所有表具有相同的列数据类型和索引信息。</font>
						<font style="vertical-align: inherit;">您不能合并
						</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">以不同顺序列出列的表，相应列中没有完全相同的数据类型，或者索引的顺序不同。</font>
						<font style="vertical-align: inherit;">但是，</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">可以使用</font>
					</font><a class="link" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisampack</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">压缩</font>
						<font style="vertical-align: inherit;">任何或所有</font>
						<font style="vertical-align: inherit;">表</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">请参见
						</font>
					</font><a class="xref" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.6.6节“ </font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisampack</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> - 生成压缩，只读MyISAM表”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">这些表之间的差异无关紧要：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										相应列和索引的名称可以不同。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										表，列和索引的注释可以不同。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										表的选项，如</font>
								</font><code class="literal">AVG_ROW_LENGTH</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，
									</font>
								</font><code class="literal">MAX_ROWS</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">或</font>
								</font><code class="literal">PACK_KEYS</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">可以不同。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表</font>
						<font style="vertical-align: inherit;">
							的替代方法</font>
						<font style="vertical-align: inherit;">是分区表，它将单个表的分区存储在单独的文件中，并使某些操作能够更有效地执行。</font>
						<font style="vertical-align: inherit;">有关更多信息，请参见</font>
					</font><a class="xref" href="partitioning.html" title="第23章分区">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第23章，</font>
						</font><i>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">分区</font>
							</font>
						</i>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表时，MySQL会</font>
					</font><code class="filename">.MRG</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">在磁盘上</font>
						<font style="vertical-align: inherit;">创建一个
						</font>
						<font style="vertical-align: inherit;">文件，其中包含</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">应作为一个表使用</font>
						<font style="vertical-align: inherit;">的基础</font>
						<font style="vertical-align: inherit;">表</font>
						<font style="vertical-align: inherit;">的名称</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">表的表格格式</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储在MySQL数据字典中。</font>
						<font style="vertical-align: inherit;">基础表不必与</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							表</font>
						<font style="vertical-align: inherit;">位于同一数据库</font>
						<font style="vertical-align: inherit;">中。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							您可以使用</font>
					</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，
						</font>
					</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，
						</font>
					</font><a class="link" href="sql-syntax.html#update" title="13.2.12 UPDATE语法"><code class="literal">UPDATE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，和
						</font>
					</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">上</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							表。</font>
						<font style="vertical-align: inherit;">你必须有</font>
					</font><a class="link" href="security.html#priv_select"><code class="literal">SELECT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，
						</font>
					</font><a class="link" href="security.html#priv_delete"><code class="literal">DELETE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><a class="link" href="security.html#priv_update"><code class="literal">UPDATE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">特权
						</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，你映射到表的
						</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表。
						</font>
					</font>
				</p>
				<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

					<div class="admon-title">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								注意
							</font>
						</font>
					</div>
					<p>
						<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">
								的使用</font>
							<font style="vertical-align: inherit;">带来以下安全问题：如果用户有权访问</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								表</font>
						</font><em class="replaceable"><code>t</code></em>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，则该用户可以创建</font>
							<font style="vertical-align: inherit;">访问</font>
							<font style="vertical-align: inherit;">的
							</font>
						</font><code class="literal">MERGE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">但是，如果</font>
							<font style="vertical-align: inherit;">随后撤消</font>
							<font style="vertical-align: inherit;">了用户的权限</font>
							<font style="vertical-align: inherit;">，则用户可以</font>
							<font style="vertical-align: inherit;">通过此
							</font>
							<font style="vertical-align: inherit;">方式继续访问
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font><em class="replaceable"><code>m</code></em>
						<font style="vertical-align: inherit;"></font><em class="replaceable"><code>t</code></em>
						<font style="vertical-align: inherit;"></font><em class="replaceable"><code>t</code></em>
						<font style="vertical-align: inherit;"></font><em class="replaceable"><code>t</code></em>
						<font style="vertical-align: inherit;"></font><em class="replaceable"><code>m</code></em>
						<font style="vertical-align: inherit;"></font>
					</p>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							使用</font>
					</font><a class="link" href="sql-syntax.html#drop-table" title="13.1.32 DROP TABLE语法"><code class="literal">DROP
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">具有
						</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表仅下降了
						</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">规范。</font>
						<font style="vertical-align: inherit;">基础表不受影响。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要创建</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表，必须指定一个
						</font>
						<font style="vertical-align: inherit;">
							选项，指示</font>
						<font style="vertical-align: inherit;">要使用的表。</font>
						<font style="vertical-align: inherit;">您可以选择指定一个</font>
						<font style="vertical-align: inherit;">
							选项来控制如何进入</font>
						<font style="vertical-align: inherit;">
							表中。</font>
						<font style="vertical-align: inherit;">使用</font>
						<font style="vertical-align: inherit;">或
						</font>
						<font style="vertical-align: inherit;">的值分别</font>
						<font style="vertical-align: inherit;">导致在第一个或最后一个基础表中进行插入。</font>
						<font style="vertical-align: inherit;">如果您没有指定任何
						</font>
						<font style="vertical-align: inherit;">选项，或者您使用值指定它</font>
						<font style="vertical-align: inherit;">，请插入
						</font>
					</font><code class="literal">UNION=(<em class="replaceable"><code>list-of-tables</code></em>)</code>
					<font style="vertical-align: inherit;"></font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;"></font><code class="literal">INSERT_METHOD</code>
					<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;"></font><code class="literal">FIRST</code>
					<font style="vertical-align: inherit;"></font><code class="literal">LAST</code>
					<font style="vertical-align: inherit;"></font><code class="literal">INSERT_METHOD</code>
					<font style="vertical-align: inherit;"></font><code class="literal">NO</code>
					<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">则不允许</font>
						<font style="vertical-align: inherit;">表中</font>
						<font style="vertical-align: inherit;">并且尝试这样做会导致错误。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							以下示例显示如何创建 </font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							表：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">mysql&gt; </font></font><strong class="userinput"><code>CREATE TABLE t1 (</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    - &gt;     </font></font><strong class="userinput"><code>a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    - &gt;     </font></font><strong class="userinput"><code>message CHAR(20)) ENGINE=MyISAM;</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt; </font></font><strong class="userinput"><code>CREATE TABLE t2 (</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    - &gt;     </font></font><strong class="userinput"><code>a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    - &gt;     </font></font><strong class="userinput"><code>message CHAR(20)) ENGINE=MyISAM;</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt; </font></font><strong class="userinput"><code>INSERT INTO t1 (message) VALUES ('Testing'),('table'),('t1');</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt; </font></font><strong class="userinput"><code>INSERT INTO t2 (message) VALUES ('Testing'),('table'),('t2');</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt; </font></font><strong class="userinput"><code>CREATE TABLE total (</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    - &gt;     </font></font><strong class="userinput"><code>a INT NOT NULL AUTO_INCREMENT,</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    - &gt;     </font></font><strong class="userinput"><code>message CHAR(20), INDEX(a))</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    - &gt;    </font></font><strong class="userinput"><code>ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							列</font>
						<font style="vertical-align: inherit;">在基础</font>
						<font style="vertical-align: inherit;">表中</font>
					</font><code class="literal">a</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">被索引为a </font>
						<font style="vertical-align: inherit;">，但不在</font>
						<font style="vertical-align: inherit;">表中。</font>
						<font style="vertical-align: inherit;">在那里它被索引但不是</font>
						<font style="vertical-align: inherit;">因为
						</font>
						<font style="vertical-align: inherit;">表不能强制基础表集的唯一性。</font>
						<font style="vertical-align: inherit;">（类似地，</font>
						<font style="vertical-align: inherit;">基础表中</font>
						<font style="vertical-align: inherit;">具有</font>
						<font style="vertical-align: inherit;">索引</font>
						<font style="vertical-align: inherit;">的列
						</font>
						<font style="vertical-align: inherit;">应该在</font>
						<font style="vertical-align: inherit;">表中</font>
						<font style="vertical-align: inherit;">编制索引，</font>
						<font style="vertical-align: inherit;">但不能作为
						</font>
						<font style="vertical-align: inherit;">索引编制索引。）
						</font>
					</font><code class="literal">PRIMARY
						KEY</code>
					<font style="vertical-align: inherit;"></font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;"></font><code class="literal">PRIMARY KEY</code>
					<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;"></font><code class="literal">UNIQUE</code>
					<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;"></font><code class="literal">UNIQUE</code>
					<font style="vertical-align: inherit;"></font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表后，您可以使用它来发出对整个表组进行操作的查询：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>SELECT * FROM total;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+  -  + --------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">a | </font><font style="vertical-align: inherit;">消息|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+  -  + --------- +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">1 | </font><font style="vertical-align: inherit;">测试|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">2 | </font><font style="vertical-align: inherit;">表|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">3 | </font><font style="vertical-align: inherit;">t1 |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">1 | </font><font style="vertical-align: inherit;">测试|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">2 | </font><font style="vertical-align: inherit;">表|</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
| </font><font style="vertical-align: inherit;">3 | </font><font style="vertical-align: inherit;">t2 |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
+  -  + --------- +</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要将</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表</font>
						<font style="vertical-align: inherit;">重新映射</font>
						<font style="vertical-align: inherit;">到不同的</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表</font>
						<font style="vertical-align: inherit;">集合</font>
						<font style="vertical-align: inherit;">，可以使用以下方法之一：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<code class="literal">DROP</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">该</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表并重新创建它。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										使用</font>
									<font style="vertical-align: inherit;">来改变底层表的列表。
									</font>
								</font><code class="literal">ALTER TABLE <em class="replaceable"><code>tbl_name</code></em>
									UNION=(...)</code>
								<font style="vertical-align: inherit;"></font>
							</p>
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										也可以使用</font>
								</font><code class="literal">ALTER TABLE ...
									UNION=()</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">（即</font>
									<font style="vertical-align: inherit;">使用</font>
									<font style="vertical-align: inherit;">空
									</font>
								</font><a class="link" href="sql-syntax.html#union" title="13.2.10.3 UNION语法"><code class="literal">UNION</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">子句）删除所有基础表。</font>
									<font style="vertical-align: inherit;">但是，在这种情况下，表实际上是空的并且插入失败，因为没有基础表来获取新行。</font>
									<font style="vertical-align: inherit;">这样的表可能有用作创建新</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表</font>
									<font style="vertical-align: inherit;">的模板</font>
								</font><a class="link" href="sql-syntax.html#create-table-like" title="13.1.20.4 CREATE TABLE ... LIKE语法"><code
									 class="literal">CREATE
										TABLE ... LIKE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							基础表定义和索引必须与表的定义紧密</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">相符。</font>
						<font style="vertical-align: inherit;">当</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							打开</font>
						<font style="vertical-align: inherit;">作为</font>
						<font style="vertical-align: inherit;">表的</font>
						<font style="vertical-align: inherit;">一部分的</font>
						<font style="vertical-align: inherit;">表时，而不是在</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">创建表</font>
						<font style="vertical-align: inherit;">时，将</font>
						<font style="vertical-align: inherit;">检查一致性</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">如果任何表未通过一致性检查，则触发打开表的操作将失败。</font>
						<font style="vertical-align: inherit;">这意味着更改a中表的定义
						</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">可能会在</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">访问表</font>
						<font style="vertical-align: inherit;">时导致失败
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">应用于每个表的一致性检查是：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										基础表和</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表必须具有相同的列数。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										基础表和</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表中</font>
									<font style="vertical-align: inherit;">的列顺序
									</font>
									<font style="vertical-align: inherit;">必须匹配。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										此外，</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">还比较</font>
									<font style="vertical-align: inherit;">了父</font>
									<font style="vertical-align: inherit;">表和基础表中</font>
									<font style="vertical-align: inherit;">每个相应列的规范，</font>
									<font style="vertical-align: inherit;">并且必须满足以下检查：
									</font>
								</font>
							</p>
							<div class="itemizedlist">
								<ul class="itemizedlist" style="list-style-type: circle; ">
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													基础表和</font>
											</font><code class="literal">MERGE</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">表中</font>
												<font style="vertical-align: inherit;">的列类型
												</font>
												<font style="vertical-align: inherit;">必须相等。
												</font>
											</font>
										</p>
									</li>
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													基础表和</font>
											</font><code class="literal">MERGE</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">表中</font>
												<font style="vertical-align: inherit;">的列长度
												</font>
												<font style="vertical-align: inherit;">必须相等。
												</font>
											</font>
										</p>
									</li>
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													基础表和
												</font>
											</font><code class="literal">MERGE</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">表的列可以是
												</font>
											</font><code class="literal">NULL</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">。
												</font>
											</font>
										</p>
									</li>
								</ul>
							</div>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										基础表必须至少具有与</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表</font>
									<font style="vertical-align: inherit;">一样多的索引
									</font>
									<font style="vertical-align: inherit;">。</font>
									<font style="vertical-align: inherit;">基础表可能有比</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表</font>
									<font style="vertical-align: inherit;">更多的索引</font>
									<font style="vertical-align: inherit;">，但不能少。
									</font>
								</font>
							</p>
							<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

								<div class="admon-title">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											注意
										</font>
									</font>
								</div>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											存在一个已知问题，即同一列上的索引在</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表和基础</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中的</font>
										<font style="vertical-align: inherit;">顺序必须相同</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">请参阅Bug＃33653。
										</font>
									</font>
								</p>
							</div>
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										每个索引必须满足以下检查：
									</font>
								</font>
							</p>
							<div class="itemizedlist">
								<ul class="itemizedlist" style="list-style-type: circle; ">
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													基础表和</font>
											</font><code class="literal">MERGE</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">表</font>
												<font style="vertical-align: inherit;">的索引类型
												</font>
												<font style="vertical-align: inherit;">必须相同。
												</font>
											</font>
										</p>
									</li>
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													基础表和</font>
											</font><code class="literal">MERGE</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">表</font>
												<font style="vertical-align: inherit;">的索引定义中的索引部分（即复合索引中的多个列）的数量</font>
												<font style="vertical-align: inherit;">必须相同。
												</font>
											</font>
										</p>
									</li>
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													对于每个索引部分：
												</font>
											</font>
										</p>
										<div class="itemizedlist">
											<ul class="itemizedlist" style="list-style-type: square; ">
												<li class="listitem">
													<p>
														<font style="vertical-align: inherit;">
															<font style="vertical-align: inherit;">
																索引部分长度必须相等。
															</font>
														</font>
													</p>
												</li>
												<li class="listitem">
													<p>
														<font style="vertical-align: inherit;">
															<font style="vertical-align: inherit;">
																索引部件类型必须相等。
															</font>
														</font>
													</p>
												</li>
												<li class="listitem">
													<p>
														<font style="vertical-align: inherit;">
															<font style="vertical-align: inherit;">
																索引部分语言必须相同。
															</font>
														</font>
													</p>
												</li>
												<li class="listitem">
													<p>
														<font style="vertical-align: inherit;">
															<font style="vertical-align: inherit;">
																检查索引部分是否可以
															</font>
														</font><code class="literal">NULL</code>
														<font style="vertical-align: inherit;">
															<font style="vertical-align: inherit;">。
															</font>
														</font>
													</p>
												</li>
											</ul>
										</div>
									</li>
								</ul>
							</div>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果</font>
					</font><code class="literal">MERGE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">由于基础表的问题而无法打开或使用表，则</font>
					</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">显示有关哪个表导致问题的信息。
						</font>
					</font>
				</p>
				<h3><a name="idm140091630096560"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">其他资源</font>
					</font>
				</h3>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										有关</font>
								</font><code class="literal">MERGE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">存储引擎的</font>
									<font style="vertical-align: inherit;">论坛，</font>
									<font style="vertical-align: inherit;">请访问</font>
								</font><a class="ulink" href="https://forums.mysql.com/list.php?93" target="_top">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">https://forums.mysql.com/list.php?93</font>
									</font>
								</a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="merge-table-advantages"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.7.1 MERGE表的优点和缺点</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<code class="literal">MERGE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> 表可以帮助您解决以下问题：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											轻松管理一组日志表。</font>
										<font style="vertical-align: inherit;">例如，您可以将来自不同月份的数据放入单独的表中，使用</font>
									</font><a class="link" href="programs.html#myisampack" title="4.6.6 myisampack  - 生成压缩的只读MyISAM表"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisampack</font>
												</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">压缩其中一些表，</font>
										<font style="vertical-align: inherit;">然后创建一个
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表以将它们用作一个表。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											获得更快的速度。</font>
										<font style="vertical-align: inherit;">您可以根据某些条件拆分大型只读表，然后将各个表放在不同的磁盘上。</font>
										<font style="vertical-align: inherit;">以</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">这种方式构造</font>
										<font style="vertical-align: inherit;">的</font>
										<font style="vertical-align: inherit;">表可能比使用单个大表快得多。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											执行更有效的搜索。</font>
										<font style="vertical-align: inherit;">如果您确切地知道要查找的内容，则可以仅搜索其中一个基础表以查找某些查询，并将</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											表格用于其他</font>
										<font style="vertical-align: inherit;">查询</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">您甚至可以使用许多不同的
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表来使用重叠的表集。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											执行更有效的维修。</font>
										<font style="vertical-align: inherit;">修复映射到</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表的</font>
										<font style="vertical-align: inherit;">单个较小的</font>
										<font style="vertical-align: inherit;">表比修复单个大表</font>
										<font style="vertical-align: inherit;">更容易
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											立即将多个表映射为一个。</font>
										<font style="vertical-align: inherit;">一</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											，因为它使用的各个表的索引表不需要维护它自己的索引。</font>
										<font style="vertical-align: inherit;">因此，
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表集合的
										</font>
										<font style="vertical-align: inherit;">创建或重新映射速度</font>
									</font><span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">非常</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">快。</font>
										<font style="vertical-align: inherit;">（</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">即使未</font>
										<font style="vertical-align: inherit;">创建索引，您仍必须在创建</font>
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">时指定索引定义
										</font>
										<font style="vertical-align: inherit;">。）
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果您有一组表，可以根据需要从中创建大表，则可以根据需要从中创建
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表。</font>
										<font style="vertical-align: inherit;">这速度更快，节省了大量磁盘空间。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											超过操作系统的文件大小限制。</font>
										<font style="vertical-align: inherit;">每个
										</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表都受此限制的约束，但</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">不是表</font>
										<font style="vertical-align: inherit;">的集合</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											您可以</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">通过定义</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">映射到该单个表</font>
										<font style="vertical-align: inherit;">的</font>
										<font style="vertical-align: inherit;">表来</font>
										<font style="vertical-align: inherit;">为</font>
										<font style="vertical-align: inherit;">表
										</font>
										<font style="vertical-align: inherit;">创建别名或同义词
										</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">这样做不会产生明显的性能影响（</font>
									</font><code class="literal">memcpy()</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">每次读取</font>
										<font style="vertical-align: inherit;">只需要几次间接调用和
										</font>
										<font style="vertical-align: inherit;">调用）。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">
								的缺点</font>
							<font style="vertical-align: inherit;">是：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											您只能</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">对</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">使用相同</font>
										<font style="vertical-align: inherit;">的</font>
										<font style="vertical-align: inherit;">表。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											某些</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">功能在</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表格</font>
										<font style="vertical-align: inherit;">中不可用
										</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">例如，您无法</font>
									</font><code class="literal">FULLTEXT</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">在</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">上</font>
										<font style="vertical-align: inherit;">创建</font>
										<font style="vertical-align: inherit;">索引
										</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">（您可以</font>
									</font><code class="literal">FULLTEXT</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">在基础</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">上</font>
										<font style="vertical-align: inherit;">创建
										</font>
										<font style="vertical-align: inherit;">索引
										</font>
										<font style="vertical-align: inherit;">，但不能
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">使用全文搜索来搜索表。）
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表是非临时表，则所有基础</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表必须是非临时表。</font>
										<font style="vertical-align: inherit;">如果</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表是临时的，则</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表可以</font>
										<font style="vertical-align: inherit;">是临时</font>
										<font style="vertical-align: inherit;">表和非临时表。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表使用的文件描述符多于
										</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表。</font>
										<font style="vertical-align: inherit;">如果10个客户端使用
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">映射到10个表的表，则服务器使用（10×10）+ 10个文件描述符。</font>
										<font style="vertical-align: inherit;">（10个客户端中的每个客户端有10个数据文件描述符，客户端共享10个索引文件描述符。）
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											索引读取速度较慢。</font>
										<font style="vertical-align: inherit;">当您读取索引时，
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">存储引擎需要对所有基础表发出读取以检查哪一个与给定索引值最匹配。</font>
										<font style="vertical-align: inherit;">要读取下一个索引值，
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">存储引擎需要搜索读取缓冲区以查找下一个值。</font>
										<font style="vertical-align: inherit;">只有当一个索引缓冲区用完时，存储引擎才需要读取下一个索引块。</font>
										<font style="vertical-align: inherit;">这使得</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">索引</font>
									</font><a class="link" href="optimization.html#jointype_eq_ref"><code class="literal">eq_ref</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											搜索</font>
										<font style="vertical-align: inherit;">速度慢得多</font>
										<font style="vertical-align: inherit;">，但搜索</font>
										<font style="vertical-align: inherit;">速度</font>
										<font style="vertical-align: inherit;">却慢得多
										</font>
									</font><a class="link" href="optimization.html#jointype_ref"><code class="literal">ref</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">有关详细信息</font>
									</font><a class="link" href="optimization.html#jointype_eq_ref"><code class="literal">eq_ref</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											，并</font>
									</font><a class="link" href="optimization.html#jointype_ref"><code class="literal">ref</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">请参见
										</font>
									</font><a class="xref" href="sql-syntax.html#explain" title="13.8.2 EXPLAIN语法">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">第13.8.2，“EXPLAIN语法”</font>
										</font>
									</a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>

				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="merge-table-problems"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.7.2 MERGE表问题</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								以下是</font>
						</font><code class="literal">MERGE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								表的</font>
							<font style="vertical-align: inherit;">已知问题</font>
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											在5.1.23之前的MySQL Server版本中，可以使用非临时子MyISAM表创建临时合并表。
										</font>
									</font>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											从版本5.1.23开始，MERGE子项通过父表被锁定。</font>
										<font style="vertical-align: inherit;">如果父母是临时的，那么它没有被锁定，所以孩子们也没有被锁定。</font>
										<font style="vertical-align: inherit;">并行使用MyISAM表会破坏它们。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果您使用</font>
									</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">将</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">更改</font>
										<font style="vertical-align: inherit;">为另一个存储引擎，则会丢失到基础表的映射。</font>
										<font style="vertical-align: inherit;">而是将基础</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中</font>
										<font style="vertical-align: inherit;">的行</font>
										<font style="vertical-align: inherit;">复制到更改的表中，然后使用指定的存储引擎。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											在</font>
									</font><code class="literal">INSERT_METHOD</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">一个表选择
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表指示哪个底层
										</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">使用表插入到
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中。</font>
										<font style="vertical-align: inherit;">但是，对该</font>
									</font><code class="literal">AUTO_INCREMENT</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表的表选项的
										</font>
										<font style="vertical-align: inherit;">使用
										</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">对于插入表中没有任何影响，</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">直到至少一行已直接插入</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											表中。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											一个</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表不能保持对整个表唯一性约束。</font>
										<font style="vertical-align: inherit;">执行时
										</font>
									</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，数据将进入第一个或最后一个</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表（由</font>
									</font><code class="literal">INSERT_METHOD</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">选项</font>
										<font style="vertical-align: inherit;">确定</font>
										<font style="vertical-align: inherit;">）。</font>
										<font style="vertical-align: inherit;">MySQL确保唯一键值在该</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中</font>
										<font style="vertical-align: inherit;">保持唯一</font>
										<font style="vertical-align: inherit;">，但不</font>
										<font style="vertical-align: inherit;">保留
										</font>
										<font style="vertical-align: inherit;">集合中的所有基础表。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											由于</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">引擎无法对基础表集强制实施唯一性，因此
										</font>
									</font><a class="link" href="sql-syntax.html#replace" title="13.2.9 REPLACE语法"><code class="literal">REPLACE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">无法按预期工作。</font>
										<font style="vertical-align: inherit;">两个关键事实是：
										</font>
									</font>
								</p>
								<div class="itemizedlist">
									<ul class="itemizedlist" style="list-style-type: circle; ">
										<li class="listitem">
											<p>
												<a class="link" href="sql-syntax.html#replace" title="13.2.9 REPLACE语法"><code class="literal">REPLACE</code></a>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">只能在它要写入的基础表中检测唯一键冲突（由</font>
												</font><code class="literal">INSERT_METHOD</code>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">选项</font>
													<font style="vertical-align: inherit;">确定
													</font>
													<font style="vertical-align: inherit;">）。</font>
													<font style="vertical-align: inherit;">这与</font>
												</font><code class="literal">MERGE</code>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">表格本身的</font>
													<font style="vertical-align: inherit;">违规行为不同</font>
													<font style="vertical-align: inherit;">。
													</font>
												</font>
											</p>
										</li>
										<li class="listitem">
											<p>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">
														如果</font>
												</font><a class="link" href="sql-syntax.html#replace" title="13.2.9 REPLACE语法"><code class="literal">REPLACE</code></a>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">检测到唯一的密钥冲突，它将仅更改它写入的基础表中的相应行; </font>
													<font style="vertical-align: inherit;">也就是说，由</font>
												</font><code class="literal">INSERT_METHOD</code>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">选项</font>
													<font style="vertical-align: inherit;">确定的第一个或最后一个表
													</font>
													<font style="vertical-align: inherit;">。
													</font>
												</font>
											</p>
										</li>
									</ul>
								</div>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											类似的考虑适用于
										</font>
									</font><a class="link" href="sql-syntax.html#insert-on-duplicate" title="13.2.6.2 INSERT ... ON DUPLICATE KEY UPDATE语法"><code
										 class="literal">INSERT
											... ON DUPLICATE KEY UPDATE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表不支持分区。</font>
										<font style="vertical-align: inherit;">也就是说，您不能对</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											表进行</font>
										<font style="vertical-align: inherit;">分区</font>
										<font style="vertical-align: inherit;">，也不能对</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表的</font>
										<font style="vertical-align: inherit;">任何</font>
										<font style="vertical-align: inherit;">基础</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表进行分区。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											你不应该使用</font>
									</font><a class="link" href="sql-syntax.html#analyze-table" title="13.7.3.1 ANALYZE TABLE语法"><code class="literal">ANALYZE
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，</font>
									</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#drop-table" title="13.1.32 DROP TABLE语法"><code class="literal">DROP
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">没有一个
										</font>
									</font><code class="literal">WHERE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">条款，或
										</font>
									</font><a class="link" href="sql-syntax.html#truncate-table" title="13.1.37 TRUNCATE TABLE语法"><code class="literal">TRUNCATE
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">任何被映射到一个开放的表的</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											表。</font>
										<font style="vertical-align: inherit;">如果这样做，</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表格仍可能引用原始表格并产生意外结果。</font>
										<font style="vertical-align: inherit;">要解决此问题，请</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">通过</font>
									</font><a class="link" href="sql-syntax.html#flush-tables"><code class="literal">FLUSH TABLES</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">在执行任何命名操作之前</font>
										<font style="vertical-align: inherit;">发出</font>
										<font style="vertical-align: inherit;">语句来</font>
										<font style="vertical-align: inherit;">确保没有
										</font>
										<font style="vertical-align: inherit;">表保持打开状态
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											意外的结果包括</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">上的操作可能</font>
										<font style="vertical-align: inherit;">会报告表损坏。</font>
										<font style="vertical-align: inherit;">如果在基础</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">上的一个命名操作之后发生这种情况</font>
										<font style="vertical-align: inherit;">，则损坏消息是虚假的。</font>
										<font style="vertical-align: inherit;">要处理此问题，请</font>
									</font><a class="link" href="sql-syntax.html#flush-tables"><code class="literal">FLUSH TABLES</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">在修改</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">后</font>
										<font style="vertical-align: inherit;">发出
										</font>
										<font style="vertical-align: inherit;">语句</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="sql-syntax.html#drop-table" title="13.1.32 DROP TABLE语法"><code class="literal">DROP
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">在表中使用的</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表在Windows上不起作用，因为</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">存储引擎的表映射在MySQL的上层隐藏。</font>
										<font style="vertical-align: inherit;">Windows不允许删除打开的文件，因此首先必须刷新所有</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表（使用
										</font>
									</font><a class="link" href="sql-syntax.html#flush-tables"><code class="literal">FLUSH TABLES</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">）或删除
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表，然后再删除表。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">访问表时（例如，作为</font>
										<font style="vertical-align: inherit;">或
										</font>
										<font style="vertical-align: inherit;">语句的</font>
										<font style="vertical-align: inherit;">一部分），将检查</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表和
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表
										</font>
										<font style="vertical-align: inherit;">
											的定义</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">检查</font>
										<font style="vertical-align: inherit;">通过比较列顺序，类型，大小和关联索引来</font>
										<font style="vertical-align: inherit;">确保</font>
										<font style="vertical-align: inherit;">表的定义</font>
										<font style="vertical-align: inherit;">和父
										</font>
										<font style="vertical-align: inherit;">表定义匹配。</font>
										<font style="vertical-align: inherit;">如果表之间存在差异，则返回错误并且语句失败。</font>
										<font style="vertical-align: inherit;">由于在打开表时会进行这些检查，因此对单个表定义的任何更改（包括列更改，列排序和引擎更改）都将导致语句失败。
										</font>
									</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
									<font style="vertical-align: inherit;"></font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code
										 class="literal">INSERT</code></a>
									<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;"></font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;"></font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中</font>
										<font style="vertical-align: inherit;">
											的索引顺序</font>
										<font style="vertical-align: inherit;">及其基础表应该相同。</font>
										<font style="vertical-align: inherit;">如果您使用
										</font>
									</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">向</font>
									</font><code class="literal">UNIQUE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中使用的</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">添加
										</font>
										<font style="vertical-align: inherit;">索引</font>
										<font style="vertical-align: inherit;">，然后使用</font>
										<font style="vertical-align: inherit;">在
										</font>
										<font style="vertical-align: inherit;">表
										</font>
									</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">上添加非唯一索引</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，则如果基础表中已存在非</font>
										<font style="vertical-align: inherit;">唯一索引，则</font>
										<font style="vertical-align: inherit;">表的索引顺序不同。</font>
										<font style="vertical-align: inherit;">（这是因为
										</font>
										<font style="vertical-align: inherit;">在非唯一索引之前</font>
									</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">放置
										</font>
									</font><code class="literal">UNIQUE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">索引以便于快速检测重复键。）因此，对具有此类索引的表的查询可能会返回意外结果。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果遇到类似于</font>
									</font><span class="errortext">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">ERROR 1017（HY000）</font>
										</font><em class="replaceable"><code>tbl_name</code></em>
										<font style="vertical-align: inherit;"></font>
									</span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">的错误消息</font><span class="errortext">
											<font style="vertical-align: inherit;">：找不到文件：'。</font>
										</span><span class="errortext">
											<font style="vertical-align: inherit;">MRR'（错误号：2）</font>
										</span>
										<font style="vertical-align: inherit;">，它通常表示某些基础表不使用</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											存储引擎。</font>
										<font style="vertical-align: inherit;">确认所有这些表都是
										</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											表中的最大行数</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">为2 </font>
									</font><sup>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">64</font>
										</font>
									</sup>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">（~1.844E + 19;与</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">相同</font>
										<font style="vertical-align: inherit;">）。</font>
										<font style="vertical-align: inherit;">无法将多个</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">合并</font>
										<font style="vertical-align: inherit;">到一个
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">具有超过此行数的表中。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											目前已知</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">使用具有父表的不同行格式</font>
										<font style="vertical-align: inherit;">
											的基础</font>
										<font style="vertical-align: inherit;">表</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">失败。</font>
										<font style="vertical-align: inherit;">请参阅Bug＃32364。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">生效</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">时，</font>
										<font style="vertical-align: inherit;">
											您无法更改非临时</font>
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">的联合列表
										</font>
									</font><a class="link" href="sql-syntax.html#lock-tables" title="13.3.6 LOCK TABLES和UNLOCK TABLES语法"><code
										 class="literal">LOCK
											TABLES</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">以下就
										</font>
									</font><span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">不能</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">正常工作：
										</font>
									</font>
								</p>
								<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE m1 ... ENGINE = MRG_MYISAM ......;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
LOCK TABLES t1 WRITE，t2 WRITE，m1 WRITE;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
ALTER TABLE m1 ... UNION =（t1，t2）......;</font></font><font></font>
</pre>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											但是，您可以使用临时</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">执行此操作
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											您既不能创建一个</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表
										</font>
									</font><code class="literal">CREATE ... SELECT</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，也</font>
										<font style="vertical-align: inherit;">不能创建</font>
										<font style="vertical-align: inherit;">临时</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表，也
										</font>
										<font style="vertical-align: inherit;">不能创建非</font>
										<font style="vertical-align: inherit;">临时
										</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表。</font>
										<font style="vertical-align: inherit;">例如：
										</font>
									</font>
								</p>
								<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE m1 ... ENGINE = MRG_MYISAM ... SELECT ...;</font></font></pre>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											尝试这样做会导致错误：
										</font>
									</font><em class="replaceable"><code>tbl_name</code></em>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">不是</font>
									</font><code class="literal">BASE
										TABLE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											在某些情况下，</font>
										<font style="vertical-align: inherit;">如果基础表包含</font>
										<font style="vertical-align: inherit;">或
										</font>
										<font style="vertical-align: inherit;">列</font>
										<font style="vertical-align: inherit;">，则基础表</font>
									</font><code class="literal">PACK_KEYS</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">中的</font>
										<font style="vertical-align: inherit;">不同</font>
										<font style="vertical-align: inherit;">表选项值</font>
									</font><code class="literal">MERGE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">会导致意外结果</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">作为解决方法，用于
										</font>
										<font style="vertical-align: inherit;">确保所有涉及的表具有相同的</font>
										<font style="vertical-align: inherit;">值。</font>
										<font style="vertical-align: inherit;">（缺陷号码＃50646）
										</font>
									</font><code class="literal">CHAR</code>
									<font style="vertical-align: inherit;"></font><code class="literal">BINARY</code>
									<font style="vertical-align: inherit;"></font><code class="literal">ALTER TABLE</code>
									<font style="vertical-align: inherit;"></font><code class="literal">PACK_KEYS</code>
									<font style="vertical-align: inherit;"></font>
								</p>
							</li>
						</ul>
					</div>

				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="federated-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.8 FEDERATED存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="storage-engines.html#federated-description">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.1联合存储引擎概述</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#federated-create">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.2如何创建FEDERATED表</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#federated-usagenotes">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.3联合存储引擎注释和提示</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#federated-storage-engine-resources">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.4联合存储引擎资源</font>
									</font>
								</a></span></dt></dl>
				</div>
				<a class="indexterm" name="idm140091629941200"></a><a class="indexterm" name="idm140091629940112"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">FEDERATED</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎，您无需使用复制或群集技术访问从远程MySQL数据库的数据。</font>
						<font style="vertical-align: inherit;">查询本地</font>
					</font><code class="literal">FEDERATED</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表会自动从远程（联合）表中提取数据。</font>
						<font style="vertical-align: inherit;">没有数据存储在本地表中。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要从</font>
					</font><code class="literal">FEDERATED</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">源代码构建MySQL，</font>
						<font style="vertical-align: inherit;">要包含</font>
						<font style="vertical-align: inherit;">存储引擎，请</font>
						<font style="vertical-align: inherit;">使用该
						</font>
						<font style="vertical-align: inherit;">
							选项</font>
						<font style="vertical-align: inherit;">调用</font>
					</font><span class="command"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">CMake</font>
							</font>
						</strong></span>
					<font style="vertical-align: inherit;"></font><a class="link" href="installing.html#option_cmake_storage_engine_options"
					 title="存储引擎选项"><code class="option">-DWITH_FEDERATED_STORAGE_ENGINE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">FEDERATED</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎默认情况下未在运行的服务器启用; </font>
						<font style="vertical-align: inherit;">要启用
						</font>
					</font><code class="literal">FEDERATED</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，您必须使用该</font>
					</font><code class="option">--federated</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">选项</font>
						<font style="vertical-align: inherit;">启动MySQL服务器二进制文件</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要检查</font>
					</font><code class="literal">FEDERATED</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎</font>
						<font style="vertical-align: inherit;">的源代码</font>
						<font style="vertical-align: inherit;">，请查看</font>
					</font><code class="filename">storage/federated</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">MySQL源代码分发</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">目录。
						</font>
					</font>
				</p>
				<div class="section">

					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="federated-description"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.1联合存储引擎概述</font>
									</font>
								</h3>
							</div>
						</div>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								使用其中一个标准存储引擎（例如</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，</font>
						</font><code class="literal">CSV</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或
							</font>
						</font><code class="literal">InnoDB</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">）</font>
							<font style="vertical-align: inherit;">创建表时</font>
							<font style="vertical-align: inherit;">，该表由表定义和关联数据组成。</font>
							<font style="vertical-align: inherit;">创建
							</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表时，表定义相同，但数据的物理存储在远程服务器上处理。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								甲</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表由两个部分组成：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											甲</font>
									</font><span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">远程服务器</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">与数据库表，其又由表定义（存储在MySQL数据字典）和相关的表中的。</font>
										<font style="vertical-align: inherit;">远程表的表类型可以是远程</font>
									</font><code class="literal">mysqld</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">服务器</font>
										<font style="vertical-align: inherit;">支持的任何类型</font>
										<font style="vertical-align: inherit;">，包括
										</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或</font>
									</font><code class="literal">InnoDB</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											甲</font>
									</font><span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">本地服务器</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">与数据库表，其中表定义在远程服务器上匹配相应的表的。</font>
										<font style="vertical-align: inherit;">表定义存储在数据字典中。</font>
										<font style="vertical-align: inherit;">本地服务器上没有数据文件。</font>
										<font style="vertical-align: inherit;">相反，表定义包括指向远程表的连接字符串。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">本地服务器</font>
							<font style="vertical-align: inherit;">上的</font>
							<font style="vertical-align: inherit;">表上</font>
							<font style="vertical-align: inherit;">执行查询和语句时
							</font>
							<font style="vertical-align: inherit;">，通常会从本地数据文件插入，更新或删除信息的操作将被发送到远程服务器以供执行，在远程服务器上更新数据文件或返回远程服务器的匹配行。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;"></font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表格设置</font>
							<font style="vertical-align: inherit;">
								的基本结构</font>
						</font><a class="xref" href="storage-engines.html#figure-se-federated-structure" title="图16.2联合表结构">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">如图16.2“FEDERATED表结构”所示</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<div class="figure">
						<a name="figure-se-federated-structure"></a>
						<p class="title"><b>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">图16.2联合表结构</font>
								</font>
							</b></p>
						<div class="figure-contents">

							<div class="mediaobject">
								<img src="images/se-federated-structure.png" width="475" height="269" alt="内容在周围文本中描述。">
							</div>

						</div>

					</div>
					<br class="figure-break">
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								当客户端发出引用</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">的SQL语句时，
							</font>
							<font style="vertical-align: inherit;">本地服务器（执行SQL语句的位置）与远程服务器（物理存储数据的位置）之间的信息流如下：
							</font>
						</font>
					</p>
					<div class="orderedlist">
						<ol class="orderedlist" type="1">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											存储引擎查看</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表所具有的</font>
										<font style="vertical-align: inherit;">每个列，
										</font>
										<font style="vertical-align: inherit;">并构造引用远程表的相应SQL语句。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											使用MySQL客户端API将语句发送到远程服务器。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											远程服务器处理该语句，本地服务器检索该语句生成的任何结果（受影响的行计数或结果集）。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果语句生成结果集，则每列都将转换为</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">引擎期望的</font>
										<font style="vertical-align: inherit;">内部存储引擎格式，
										</font>
										<font style="vertical-align: inherit;">并可用于将结果显示给发出原始语句的客户端。
										</font>
									</font>
								</p>
							</li>
						</ol>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								本地服务器使用MySQL客户端C API函数与远程服务器通信。</font>
							<font style="vertical-align: inherit;">它调用
							</font>
						</font><a class="link" href="connectors-apis.html#mysql-real-query" title="28.7.7.57 mysql_real_query（）"><code
							 class="literal">mysql_real_query()</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">发送语句。</font>
							<font style="vertical-align: inherit;">要读取结果集，它使用
							</font>
						</font><a class="link" href="connectors-apis.html#mysql-store-result" title="28.7.7.79 mysql_store_result（）"><code
							 class="literal">mysql_store_result()</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">并一次一个地获取行
							</font>
						</font><a class="link" href="connectors-apis.html#mysql-fetch-row" title="28.7.7.21 mysql_fetch_row（）"><code
							 class="literal">mysql_fetch_row()</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="federated-create"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.2如何创建FEDERATED表</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<div class="toc">
						<dl class="toc"><dt><span class="section"><a href="storage-engines.html#federated-create-connection">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.2.1使用CONNECTION创建FEDERATED表</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="storage-engines.html#federated-create-server">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.2.2使用CREATE SERVER创建FEDERATED表</font>
										</font>
									</a></span></dt></dl>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要创建</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表，您应该按照以下步骤操作：
							</font>
						</font>
					</p>
					<div class="orderedlist">
						<ol class="orderedlist" type="1">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											在远程服务器上创建表。</font>
										<font style="vertical-align: inherit;">或者，可以使用该</font>
									</font><a class="link" href="sql-syntax.html#show-create-table" title="13.7.6.10 SHOW CREATE TABLE语法"><code
										 class="literal">SHOW CREATE TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											语句</font>
										<font style="vertical-align: inherit;">记下现有表的表定义</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											使用相同的表定义在本地服务器上创建表，但添加将本地表链接到远程表的连接信息。
										</font>
									</font>
								</p>
							</li>
						</ol>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								例如，您可以在远程服务器上创建以下表：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE test_table（</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    id INT（20）NOT NULL AUTO_INCREMENT，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    name VARCHAR（32）NOT NULL DEFAULT''，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    其他INT（20）NOT NULL DEFAULT'0'，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    PRIMARY KEY（id），</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    INDEX名称（名称），</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    INDEX other_key（其他）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
ENGINE = MyISAM数据</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
DEFAULT CHARSET = utf8mb4;</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要创建将联合到远程表的本地表，有两个选项可用。</font>
							<font style="vertical-align: inherit;">您可以创建本地表并指定用于使用连接到远程表的连接字符串（包含服务器名称，登录名，密码）</font>
						</font><code class="literal">CONNECTION</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，也可以使用先前使用该</font>
						</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
								SERVER</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句</font>
							<font style="vertical-align: inherit;">创建的现有连接
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<div class="important" style="margin-left: 0.5in; margin-right: 0.5in;">

						<div class="admon-title">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									重要
								</font>
							</font>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									创建本地表时，它</font>
							</font><span class="emphasis"><em>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">必须</font>
									</font>
								</em></span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									具有与远程表相同的字段定义。
								</font>
							</font>
						</p>
					</div>
					<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
						<div class="admon-title">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									注意
								</font>
							</font>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									您可以</font>
							</font><code class="literal">FEDERATED</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">通过向主机上的表添加索引来</font>
								<font style="vertical-align: inherit;">提高</font>
								<font style="vertical-align: inherit;">表</font>
								<font style="vertical-align: inherit;">的性能
								</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">发生优化是因为发送到远程服务器的查询将包含该</font>
							</font><code class="literal">WHERE</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">子句</font>
								<font style="vertical-align: inherit;">的内容，
								</font>
								<font style="vertical-align: inherit;">并将被发送到远程服务器并随后在本地执行。</font>
								<font style="vertical-align: inherit;">这减少了否则将从服务器请求整个表进行本地处理的网络流量。
								</font>
							</font>
						</p>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="federated-create-connection"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.2.1使用CONNECTION创建FEDERATED表</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									要使用第一种方法，必须</font>
							</font><code class="literal">CONNECTION</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">在</font>
							</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
									TABLE</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">语句中</font>
								<font style="vertical-align: inherit;">的引擎类型之后</font>
								<font style="vertical-align: inherit;">指定
								</font>
								<font style="vertical-align: inherit;">字符串
								</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">例如：
								</font>
							</font>
						</p>
						<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE federated_table（</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    id INT（20）NOT NULL AUTO_INCREMENT，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    name VARCHAR（32）NOT NULL DEFAULT''，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    其他INT（20）NOT NULL DEFAULT'0'，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    PRIMARY KEY（id），</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    INDEX名称（名称），</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    INDEX other_key（其他）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
ENGINE = FEDERATED</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
DEFAULT CHARSET = utf8mb4</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CONNECTION = '的MySQL：// fed_user @ REMOTE_HOST：9306 /联合/ TEST_TABLE';</font></font><font></font>
</pre>
						<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

							<div class="admon-title">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										注意
									</font>
								</font>
							</div>
							<p>
								<code class="literal">CONNECTION</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">替换
									</font>
								</font><code class="literal">COMMENT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">以前版本的MySQL中使用的。
									</font>
								</font>
							</p>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									该</font>
							</font><code class="literal">CONNECTION</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">字符串包含连接到远程服务器所需的信息，该服务器包含将用于物理存储数据的表。</font>
								<font style="vertical-align: inherit;">连接字符串指定服务器名称，登录凭据，端口号和数据库/表信息。</font>
								<font style="vertical-align: inherit;">在该示例中，远程表位于服务器上</font>
							</font><code class="literal">remote_host</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，使用端口9306.名称和端口号应与要用作远程表的远程MySQL服务器实例的主机名（或IP地址）和端口号相匹配。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									连接字符串的格式如下：
								</font>
							</font>
						</p>
						<pre data-lang="none" class="programlisting"><em class="replaceable"><code>scheme</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">：// </font></font><em class="replaceable"><code>user_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">[：</font></font><em class="replaceable"><code>password</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">] @ </font></font><em class="replaceable"><code>host_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">[：</font></font><em class="replaceable"><code>port_num</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">] </font></font><em class="replaceable"><code>db_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//</font></font><em class="replaceable"><code>tbl_name</code></em>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									哪里：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<em class="replaceable"><code>scheme</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：公认的连接协议。</font>
											<font style="vertical-align: inherit;">此时仅</font>
										</font><code class="literal">mysql</code>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">支持作为
											</font>
										</font><em class="replaceable"><code>scheme</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">值。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<em class="replaceable"><code>user_name</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：连接的用户名。</font>
											<font style="vertical-align: inherit;">此用户必须已经在远程服务器上创建，并且必须具有适当的特权来执行所需的操作（</font>
										</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">，
											</font>
										</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">，
											</font>
										</font><a class="link" href="sql-syntax.html#update" title="13.2.12 UPDATE语法"><code class="literal">UPDATE</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">在远程表，等等）。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<em class="replaceable"><code>password</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">:(可选）相应的密码
											</font>
										</font><em class="replaceable"><code>user_name</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<em class="replaceable"><code>host_name</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：远程服务器的主机名或IP地址。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<em class="replaceable"><code>port_num</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">:(可选）远程服务器的端口号。</font>
											<font style="vertical-align: inherit;">默认值为3306。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<em class="replaceable"><code>db_name</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：持有远程表的数据库的名称。
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<em class="replaceable"><code>tbl_name</code></em>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：远程表的名称。</font>
											<font style="vertical-align: inherit;">本地和远程表的名称不必匹配。
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									示例连接字符串：
								</font>
							</font>
						</p>
						<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CONNECTION = 'mysql的：//用户名：密码@主机名：端口/数据库/表名'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CONNECTION = 'mysql的：//用户名@主机名/数据库/表名'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CONNECTION = 'mysql的：//用户名：密码@主机名/数据库/表名'</font></font><font></font>
</pre>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="federated-create-server"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">16.8.2.2使用CREATE SERVER创建FEDERATED表</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									如果要</font>
							</font><code class="literal">FEDERATED</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在同一服务器上</font>
								<font style="vertical-align: inherit;">创建多个</font>
								<font style="vertical-align: inherit;">表，或者如果要简化创建</font>
							</font><code class="literal">FEDERATED</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表</font>
								<font style="vertical-align: inherit;">的过程</font>
								<font style="vertical-align: inherit;">，则可以使用该</font>
							</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
									SERVER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">语句定义服务器连接参数，就像使用</font>
							</font><code class="literal">CONNECTION</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">字符串一样。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;"></font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code
								 class="literal">CREATE SERVER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									声明</font>
								<font style="vertical-align: inherit;">
									的格式</font>
								<font style="vertical-align: inherit;">是：
								</font>
							</font>
						</p>
						<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建服务器
 </font></font><em class="replaceable"><code>server_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
外部数据包装</font></font><em class="replaceable"><code>wrapper_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
选项（</font></font><em class="replaceable"><code>option</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">[，</font></font><em class="replaceable"><code>option</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">] ...）</font></font></pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									将</font>
							</font><em class="replaceable"><code>server_name</code></em>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">创建一个新的时，在连接字符串中使用的
								</font>
							</font><code class="literal">FEDERATED</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									例如，要创建与</font>
							</font><code class="literal">CONNECTION</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">字符串</font>
								<font style="vertical-align: inherit;">相同的服务器连接
								</font>
								<font style="vertical-align: inherit;">：
								</font>
							</font>
						</p>
						<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CONNECTION = '的MySQL：// fed_user @ REMOTE_HOST：9306 /联合/ TEST_TABLE';</font></font></pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									您将使用以下语句：
								</font>
							</font>
						</p>
						<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建服务器fedlink</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
FOREIGN DATA WRAPPER mysql</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
选项（USER'feed_user'，HOST'remote_host'，PORT 9306，DATABASE'federated'）;</font></font></pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									要创建</font>
							</font><code class="literal">FEDERATED</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">使用此连接</font>
								<font style="vertical-align: inherit;">的</font>
								<font style="vertical-align: inherit;">表，仍然使用</font>
							</font><code class="literal">CONNECTION</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									关键字，但指定在</font>
							</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
									SERVER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">语句中</font>
								<font style="vertical-align: inherit;">使用的名称
								</font>
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
						<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE test_table（</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    id INT（20）NOT NULL AUTO_INCREMENT，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    name VARCHAR（32）NOT NULL DEFAULT''，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    其他INT（20）NOT NULL DEFAULT'0'，</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    PRIMARY KEY（id），</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    INDEX名称（名称），</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    INDEX other_key（其他）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
ENGINE = FEDERATED</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
DEFAULT CHARSET = utf8mb4</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
CONNECTION = 'FEDLINK / TEST_TABLE';</font></font></pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									此示例中的连接名称包含connection（</font>
							</font><code class="literal">fedlink</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">）的名称和</font>
							</font><code class="literal">test_table</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">要链接</font>
								<font style="vertical-align: inherit;">的表（</font>
								<font style="vertical-align: inherit;">）</font>
								<font style="vertical-align: inherit;">的名称，</font>
								<font style="vertical-align: inherit;">以斜杠分隔。</font>
								<font style="vertical-align: inherit;">如果仅指定不带表名的连接名，则使用本地表的表名。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									有关更多信息</font>
							</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
									SERVER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，请参见</font>
							</font><a class="xref" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第13.1.18节“CREATE SERVER语法”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									该</font>
							</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
									SERVER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">语句接受与</font>
							</font><code class="literal">CONNECTION</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									字符串</font>
								<font style="vertical-align: inherit;">相同的参数</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">该</font>
							</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
									SERVER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									语句更新</font>
							</font><code class="literal">mysql.servers</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表中</font>
								<font style="vertical-align: inherit;">的行
								</font>
								<font style="vertical-align: inherit;">。</font>
								<font style="vertical-align: inherit;">有关连接字符串中的参数，</font>
							</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
									SERVER</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">语句中的</font>
								<font style="vertical-align: inherit;">选项</font>
								<font style="vertical-align: inherit;">以及表中的列
								</font>
								<font style="vertical-align: inherit;">之间的对应关系的信息，请参阅下</font>
							</font><code class="literal">mysql.servers</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">表。</font>
								<font style="vertical-align: inherit;">作为参考，</font>
							</font><code class="literal">CONNECTION</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">字符串</font>
								<font style="vertical-align: inherit;">的格式</font>
								<font style="vertical-align: inherit;">如下：
								</font>
							</font>
						</p>
						<pre data-lang="none" class="programlisting"><em class="replaceable"><code>scheme</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">：// </font></font><em class="replaceable"><code>user_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">[：</font></font><em class="replaceable"><code>password</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">] @ </font></font><em class="replaceable"><code>host_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">[：</font></font><em class="replaceable"><code>port_num</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">] </font></font><em class="replaceable"><code>db_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//</font></font><em class="replaceable"><code>tbl_name</code></em>
</pre>
						<div class="informaltable">
							<table summary="The correspondence between parameters in a connection string, options in the CREATE SERVER statement, and the columns in the mysql.servers table.">
								<colgroup>
									<col width="25%">
									<col width="25%">
									<col width="25%">
									<col width="25%">
								</colgroup>
								<thead>
									<tr>
										<th scope="col">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">描述</font>
											</font>
										</th>
										<th scope="col"><code class="literal">CONNECTION</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;"> 串</font>
											</font>
										</th>
										<th scope="col"><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code
												 class="literal">CREATE SERVER</code></a>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;"> 选项</font>
											</font>
										</th>
										<th scope="col"><code class="literal">mysql.servers</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;"> 柱</font>
											</font>
										</th>
									</tr>
								</thead>
								<tbody>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">连接方案</font>
											</font>
										</td>
										<td><em class="replaceable"><code>scheme</code></em></td>
										<td><code class="literal">wrapper_name</code></td>
										<td><code class="literal">Wrapper</code></td>
									</tr>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">远程用户</font>
											</font>
										</td>
										<td><em class="replaceable"><code>user_name</code></em></td>
										<td><code class="literal">USER</code></td>
										<td><code class="literal">Username</code></td>
									</tr>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">远程密码</font>
											</font>
										</td>
										<td><em class="replaceable"><code>password</code></em></td>
										<td><code class="literal">PASSWORD</code></td>
										<td><code class="literal">Password</code></td>
									</tr>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">远程主机</font>
											</font>
										</td>
										<td><em class="replaceable"><code>host_name</code></em></td>
										<td><code class="literal">HOST</code></td>
										<td><code class="literal">Host</code></td>
									</tr>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">远程端口</font>
											</font>
										</td>
										<td><em class="replaceable"><code>port_num</code></em></td>
										<td><code class="literal">PORT</code></td>
										<td><code class="literal">Port</code></td>
									</tr>
									<tr>
										<td scope="row">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">远程数据库</font>
											</font>
										</td>
										<td><em class="replaceable"><code>db_name</code></em></td>
										<td><code class="literal">DATABASE</code></td>
										<td><code class="literal">Db</code></td>
									</tr>
								</tbody>
							</table>
						</div>

					</div>

				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="federated-usagenotes"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.3联合存储引擎注释和提示</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								使用</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎</font>
							<font style="vertical-align: inherit;">时，您应该注意以下几点
							</font>
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表可以复制到其他从属服务器，但必须确保从服务器能够使用</font>
									</font><code class="literal">CONNECTION</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">字符串（或</font>
									</font><code class="literal">mysql.servers</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表中</font>
										<font style="vertical-align: inherit;">的行）中
										</font>
										<font style="vertical-align: inherit;">定义的用户/密码组合
										</font>
										<font style="vertical-align: inherit;">来连接到远程服务器。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								以下各项表示
							</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎执行和不支持的功能：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											远程服务器必须是MySQL服务器。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">在尝试通过</font>
										<font style="vertical-align: inherit;">
											表</font>
										<font style="vertical-align: inherit;">访问表之前</font>
										<font style="vertical-align: inherit;">
											，</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表指向</font>
										<font style="vertical-align: inherit;">的远程表</font>
									</font><span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">必须</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">存在</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											一个</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表可以指向另一个表，但是必须注意不要创建循环。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											一</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">台不支持通常意义上的指标; </font>
										<font style="vertical-align: inherit;">因为远程处理对表数据的访问，实际上它是使用索引的远程表。</font>
										<font style="vertical-align: inherit;">这意味着，对于无法使用任何索引的查询，因此需要进行全表扫描，服务器将从远程表中提取所有行并在本地过滤它们。</font>
										<font style="vertical-align: inherit;">出现这种情况，无论任何
										</font>
									</font><code class="literal">WHERE</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或</font>
									</font><code class="literal">LIMIT</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">与该使用</font>
									</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">说明; </font>
										<font style="vertical-align: inherit;">这些子句本地应用于返回的行。
										</font>
									</font>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											无法使用索引的查询因此可能导致性能低下和网络过载。</font>
										<font style="vertical-align: inherit;">另外，由于返回的行必须存储在内存中，这样的查询也可能导致本地服务器交换，甚至挂起。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											创建</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">时应小心，
										</font>
										<font style="vertical-align: inherit;">因为</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">可能不支持</font>
										<font style="vertical-align: inherit;">来自等效</font>
										<font style="vertical-align: inherit;">表或其他表</font>
										<font style="vertical-align: inherit;">的索引定义</font>
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">例如，在创建一个
										</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表与索引前缀
										</font>
									</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或
										</font>
									</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">列将失败。</font>
										<font style="vertical-align: inherit;">以下定义</font>
									</font><code class="literal">MyISAM</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">有效：
										</font>
									</font>
								</p>
								<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE`T1`（`A` VARCHAR（100），UNIQUE KEY（`A`（30）））ENGINE = MYISAM;</font></font></pre>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											此示例中的键前缀与</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">引擎</font>
										<font style="vertical-align: inherit;">不兼容，
										</font>
										<font style="vertical-align: inherit;">等效语句将失败：
										</font>
									</font>
								</p>
								<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">CREATE TABLE`T1`（`A` VARCHAR（100），UNIQUE KEY（`A`（30）））ENGINE = FEDERATED</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  CONNECTION = 'MYSQL：//127.0.0.1：3306 / TEST / T1';</font></font></pre>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果可能，在远程服务器和本地服务器上创建表时，应尝试分离列和索引定义，以避免出现这些索引问题。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											在内部，实现使用
										</font>
									</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#update" title="13.2.12 UPDATE语法"><code class="literal">UPDATE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，和
										</font>
									</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，但不会
										</font>
									</font><a class="link" href="sql-syntax.html#handler" title="13.2.4 HANDLER语法"><code class="literal">HANDLER</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											该</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">存储引擎支持
										</font>
									</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#update" title="13.2.12 UPDATE语法"><code class="literal">UPDATE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#delete" title="13.2.2 DELETE语法"><code class="literal">DELETE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，
										</font>
									</font><a class="link" href="sql-syntax.html#truncate-table" title="13.1.37 TRUNCATE TABLE语法"><code class="literal">TRUNCATE
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，和索引。</font>
										<font style="vertical-align: inherit;">它不支持</font>
									</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">，</font>
										<font style="vertical-align: inherit;">也不支持</font>
										<font style="vertical-align: inherit;">任何直接影响表结构的数据定义语言语句
										</font>
									</font><a class="link" href="sql-syntax.html#drop-table" title="13.1.32 DROP TABLE语法"><code class="literal">DROP
											TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">当前实现不使用预准备语句。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">接受
										</font>
									</font><a class="link" href="sql-syntax.html#insert-on-duplicate" title="13.2.6.2 INSERT ... ON DUPLICATE KEY UPDATE语法"><code
										 class="literal">INSERT
											... ON DUPLICATE KEY UPDATE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">语句，但如果发生重复键违规，语句将失败并显示错误。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											不支持交易。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">执行批量插入处理，以便批量发送多个行到远程表，从而提高性能。</font>
										<font style="vertical-align: inherit;">此外，如果远程表是事务性的，则它使远程存储引擎能够在发生错误时正确执行语句回滚。</font>
										<font style="vertical-align: inherit;">此功能具有以下限制：
										</font>
									</font>
								</p>
								<div class="itemizedlist">
									<ul class="itemizedlist" style="list-style-type: circle; ">
										<li class="listitem">
											<p>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">
														插入的大小不能超过服务器之间的最大数据包大小。</font>
													<font style="vertical-align: inherit;">如果插入超过此大小，则会将其分成多个数据包，并且可能会出现回滚问题。
													</font>
												</font>
											</p>
										</li>
										<li class="listitem">
											<p>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">
														不会发生批量插入处理
													</font>
												</font><a class="link" href="sql-syntax.html#insert-on-duplicate" title="13.2.6.2 INSERT ... ON DUPLICATE KEY UPDATE语法"><code
													 class="literal">INSERT
														... ON DUPLICATE KEY UPDATE</code></a>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">。
													</font>
												</font>
											</p>
										</li>
									</ul>
								</div>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											有没有办法让</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">引擎知道，如果远程表已经改变。</font>
										<font style="vertical-align: inherit;">这样做的原因是该表必须像数据文件一样工作，该数据文件永远不会被数据库系统以外的任何东西写入。</font>
										<font style="vertical-align: inherit;">如果远程数据库有任何更改，则可能会破坏本地表中数据的完整性。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											使用</font>
									</font><code class="literal">CONNECTION</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">字符串时，不能在密码中使用“@”字符。</font>
										<font style="vertical-align: inherit;">您可以使用该</font>
									</font><a class="link" href="sql-syntax.html#create-server" title="13.1.18 CREATE SERVER语法"><code class="literal">CREATE
											SERVER</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">语句创建服务器连接</font>
										<font style="vertical-align: inherit;">来解决此限制</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											在</font>
									</font><a class="link" href="server-administration.html#sysvar_insert_id"><code class="literal">insert_id</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">和
										</font>
									</font><a class="link" href="server-administration.html#sysvar_timestamp"><code class="literal">timestamp</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">选项都不会传播到数据提供者。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;"></font><a class="link" href="sql-syntax.html#drop-table" title="13.1.32 DROP TABLE语法"><code
										 class="literal">DROP TABLE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">对</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">发出的</font>
										<font style="vertical-align: inherit;">
											任何</font>
										<font style="vertical-align: inherit;">语句</font>
										<font style="vertical-align: inherit;">只会删除本地表，而不会删除远程表。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;"> 表不适用于查询缓存。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;"></font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表</font>
										<font style="vertical-align: inherit;">
											不支持用户定义的分区
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>

				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="federated-storage-engine-resources"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.8.4联合存储引擎资源</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								以下附加资源可用于
							</font>
						</font><code class="literal">FEDERATED</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">存储引擎：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											有关</font>
									</font><code class="literal">FEDERATED</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">存储引擎的</font>
										<font style="vertical-align: inherit;">论坛，</font>
										<font style="vertical-align: inherit;">请访问
										</font>
									</font><a class="ulink" href="https://forums.mysql.com/list.php?105" target="_top">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">https://forums.mysql.com/list.php?105</font>
										</font>
									</a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>

				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="example-storage-engine"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.9示例存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<a class="indexterm" name="idm140091629695328"></a><a class="indexterm" name="idm140091629694288"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">EXAMPLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎是一个存根引擎，什么都不做。</font>
						<font style="vertical-align: inherit;">其目的是作为MySQL源代码中的一个示例，说明如何开始编写新的存储引擎。</font>
						<font style="vertical-align: inherit;">因此，开发人员主要关注它。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要从</font>
					</font><code class="literal">EXAMPLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">源代码构建MySQL，</font>
						<font style="vertical-align: inherit;">要启用</font>
						<font style="vertical-align: inherit;">存储引擎，请</font>
						<font style="vertical-align: inherit;">使用该
						</font>
						<font style="vertical-align: inherit;">
							选项</font>
						<font style="vertical-align: inherit;">调用</font>
					</font><span class="command"><strong>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">CMake</font>
							</font>
						</strong></span>
					<font style="vertical-align: inherit;"></font><a class="link" href="installing.html#option_cmake_storage_engine_options"
					 title="存储引擎选项"><code class="option">-DWITH_EXAMPLE_STORAGE_ENGINE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要检查</font>
					</font><code class="literal">EXAMPLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">引擎</font>
						<font style="vertical-align: inherit;">的源代码</font>
						<font style="vertical-align: inherit;">，请查看</font>
					</font><code class="filename">storage/example</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">MySQL源代码分发</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">目录。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建</font>
					</font><code class="literal">EXAMPLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表时，不会创建任何文件。</font>
						<font style="vertical-align: inherit;">没有数据可以存储到表中。</font>
						<font style="vertical-align: inherit;">检索返回空结果。
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>CREATE TABLE test (i INT) ENGINE = EXAMPLE;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
查询OK，0行受影响（0.78秒）</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>INSERT INTO test VALUES(1),(2),(3);</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
ERROR 1031（HY000）：'test'的表存储引擎没有»</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
                    有这个选择</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL的&gt; </font></font><strong class="userinput"><code>SELECT * FROM test;</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
空集（0.31秒）</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">EXAMPLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎不支持索引。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><code class="literal">EXAMPLE</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">存储引擎不支持分区。
						</font>
					</font>
				</p>
			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="storage-engines-other"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.10其他存储引擎</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							其他存储引擎可以从使用自定义存储引擎接口的第三方和社区成员处获得。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							MySQL不支持第三方引擎。</font>
						<font style="vertical-align: inherit;">有关更多信息，文档，安装指南，错误报告或有关这些引擎的任何帮助或帮助，请直接联系引擎开发人员。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							有关开发可与可插入存储引擎体系结构一起使用的客户存储引擎的更多信息，请参阅
						</font>
					</font><a class="ulink" href="https://dev.mysql.com/doc/internals/en/custom-engine.html" target="_top">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">MySQL内部：编写自定义存储引擎</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="pluggable-storage-overview"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">16.11 MySQL存储引擎体系结构概述</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="storage-engines.html#pluggable-storage">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.11.1可插拔存储引擎架构</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="storage-engines.html#pluggable-storage-common-layer">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.11.2公共数据库服务器层</font>
									</font>
								</a></span></dt></dl>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							MySQL可插拔存储引擎架构使数据库专业人员能够针对特定应用需求选择专用存储引擎，同时完全不需要管理任何特定应用编码要求。</font>
						<font style="vertical-align: inherit;">MySQL服务器体系结构将应用程序编程人员和DBA与存储级别的所有低级实现细节隔离开来，从而提供一致且简单的应用程序模型和API。</font>
						<font style="vertical-align: inherit;">因此，尽管不同存储引擎之间存在不同的功能，但应用程序可以避免这些差异。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							可插拔存储引擎架构提供了一组标准的管理和支持服务，这些服务在所有底层存储引擎中都很常见。</font>
						<font style="vertical-align: inherit;">存储引擎本身是数据库服务器的组件，它实际上对在物理服务器级别维护的基础数据执行操作。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							这种高效的模块化架构为那些希望专门针对特定应用需求的用户提供了巨大的好处 - 例如数据仓库，事务处理或高可用性情况 - 同时享受利用独立于任何一个的一组接口和服务的优势存储引擎。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							应用程序员和DBA通过连接器API和存储引擎上方的服务层与MySQL数据库进行交互。</font>
						<font style="vertical-align: inherit;">如果应用程序更改带来了需要更改底层存储引擎的要求，或者添加了一个或多个存储引擎以支持新需求，则无需重要的编码或流程更改即可使工作正常进行。</font>
						<font style="vertical-align: inherit;">MySQL服务器体系结构通过提供适用于存储引擎的一致且易于使用的API来保护应用程序免受存储引擎的底层复杂性的影响。
						</font>
					</font>
				</p>
				<div class="section">

					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="pluggable-storage"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.11.1可插拔存储引擎架构</font>
									</font>
								</h3>
							</div>
						</div>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								MySQL Server使用可插拔存储引擎架构，可以将存储引擎加载到正在运行的MySQL服务器中或从中卸载。
							</font>
						</font>
					</p>
					<p>
						<span class="bold"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">插入存储引擎</font>
								</font>
							</strong></span>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在使用存储引擎之前，必须使用该</font>
						</font><a class="link" href="sql-syntax.html#install-plugin" title="13.7.4.4安装PLUGIN语法"><code class="literal">INSTALL
								PLUGIN</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句</font>
							<font style="vertical-align: inherit;">将存储引擎插件共享库加载到MySQL中
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">例如，如果</font>
						</font><code class="literal">EXAMPLE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命名</font>
							<font style="vertical-align: inherit;">了</font>
							<font style="vertical-align: inherit;">引擎插件并且命名</font>
						</font><code class="literal">example</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">了共享库
							</font>
						</font><code class="filename">ha_example.so</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，则使用以下语句加载它：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">INSTALL PLUGIN示例SONAME'ha_example.so';
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要安装可插拔存储引擎，插件文件必须位于MySQL插件目录中，发出该</font>
						</font><a class="link" href="sql-syntax.html#install-plugin" title="13.7.4.4安装PLUGIN语法"><code class="literal">INSTALL
								PLUGIN</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句</font>
							<font style="vertical-align: inherit;">的用户
							</font>
							<font style="vertical-align: inherit;">必须具有</font>
						</font><a class="link" href="security.html#priv_insert"><code class="literal">INSERT</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">该</font>
						</font><code class="literal">mysql.plugin</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表的</font>
							<font style="vertical-align: inherit;">权限
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								共享库必须位于MySQL服务器插件目录中，其位置由</font>
						</font><a class="link" href="server-administration.html#sysvar_plugin_dir"><code class="literal">plugin_dir</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">系统变量</font>
							<font style="vertical-align: inherit;">给出
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<span class="bold"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">拔掉存储引擎</font>
								</font>
							</strong></span>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要拔出存储引擎，请使用以下
							</font>
						</font><a class="link" href="sql-syntax.html#uninstall-plugin" title="13.7.4.6 UNINSTALL PLUGIN语法"><code class="literal">UNINSTALL
								PLUGIN</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">UNINSTALL PLUGIN示例;
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果拔下现有表所需的存储引擎，则这些表将无法访问，但仍将存在于磁盘上（如果适用）。</font>
							<font style="vertical-align: inherit;">在拔下存储引擎之前，请确保没有使用存储引擎的表。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="pluggable-storage-common-layer"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">16.11.2公共数据库服务器层</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								MySQL可插拔存储引擎是MySQL数据库服务器中的组件，负责执行数据库的实际数据I / O操作，以及启用和实施针对特定应用程序需求的某些功能集。</font>
							<font style="vertical-align: inherit;">使用特定存储引擎的一个主要好处是，您只能获得特定应用程序所需的功能，因此您在数据库中的系统开销更少，最终结果是更高效和更高的数据库性能。</font>
							<font style="vertical-align: inherit;">这就是众所周知，MySQL在行业标准基准测试中具有如此高性能，匹配或击败专有单片数据库的原因之一。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								从技术角度来看，存储引擎中的一些独特的支持基础架构组件是什么？</font>
							<font style="vertical-align: inherit;">一些关键的功能差异包括：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">并发</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：某些应用程序具有比其他应用程序更精细的锁定要求（例如行级锁定）。</font>
										<font style="vertical-align: inherit;">选择正确的锁定策略可以减少开销，从而提高整体性能。</font>
										<font style="vertical-align: inherit;">该区域还包括对多版本并发控制或</font>
									</font><span class="quote">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;"> “ </font>
										</font><span class="quote">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">快照</font>
											</font>
										</span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;"> ”</font>
										</font>
									</span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											读取等功能的支持。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">事务支持</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：并非每个应用程序都需要事务处理，但对于那些需要事务处理的事务，还有非常明确的要求，例如ACID合规性等等。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">参照完整性</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：需要让服务器通过DDL定义的外键强制实施关系数据库参照完整性。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">物理存储</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：这涉及表和索引的整体页面大小以及用于将数据存储到物理磁盘的格式。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">索引支持</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：不同的应用场景往往受益于不同的索引策略。</font>
										<font style="vertical-align: inherit;">每个存储引擎通常都有自己的索引方法，尽管有些（例如B树索引）几乎对所有引擎都是通用的。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">内存缓存</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：不同的应用程序对某些内存缓存策略的响应比其他应用程序更好，因此尽管某些内存缓存对于所有存储引擎（例如用于用户连接的内存）都是通用的，但其他内存缓存仅在特定存储引擎处于运行状态时才会被唯一定义。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">性能辅助</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：这包括用于并行操作，线程并发，数据库检查点，批量插入处理等的多个I / O线程。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">其他目标功能</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：这可能包括对地理空间操作的支持，某些数据操作操作的安全限制以及其他类似功能。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								每组可插拔存储引擎基础架构组件旨在为特定应用程序提供一组选择性优势。</font>
							<font style="vertical-align: inherit;">相反，避免一组组件功能有助于减少不必要的开销。</font>
							<font style="vertical-align: inherit;">理所当然地，了解特定应用程序的一组要求并选择合适的MySQL存储引擎会对整体系统效率和性能产生巨大影响。
							</font>
						</font>
					</p>
				</div>

			</div>

		</div>
		<div class="copyright-footer">

		</div>
		<div class="navfooter">
			<hr>
			<table width="100%" summary="Navigation footer">
				<tbody>
					<tr>
						<td width="40%" align="left"><a accesskey="p" href="innodb-storage-engine.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">上一页</font>
								</font>
							</a></td>
						<td width="20%" align="center"><a accesskey="u" href="">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">向上</font>
								</font>
							</a></td>
						<td width="40%" align="right">&nbsp;<a accesskey="n" href="replication.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">下一个</font>
								</font>
							</a></td>
					</tr>
					<tr>
						<td width="40%" align="left" valign="top">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第15章InnoDB存储引擎</font>
							</font>
						</td>
						<td width="20%" align="center"><a accesskey="h" href="index.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">家</font>
								</font>
							</a></td>
						<td width="40%" align="right" valign="top">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第17章复制</font>
							</font>
						</td>
					</tr>
				</tbody>
			</table>
		</div>


		<div id="goog-gt-tt" class="skiptranslate" dir="ltr">
			<div style="padding: 8px;">
				<div>
					<div class="logo"><img src="https://www.gstatic.com/images/branding/product/1x/translate_24dp.png" width="20"
						 height="20" alt="Google 翻译"></div>
				</div>
			</div>
			<div class="top" style="padding: 8px; float: left; width: 100%;">
				<h1 class="title gray">原文</h1>
			</div>
			<div class="middle" style="padding: 8px;">
				<div class="original-text"></div>
			</div>
			<div class="bottom" style="padding: 8px;">
				<div class="activity-links"><span class="activity-link">提供更好的翻译建议</span><span class="activity-link"></span></div>
				<div class="started-activity-container">
					<hr style="color: #CCC; background-color: #CCC; height: 1px; border: none;">
					<div class="activity-root"></div>
				</div>
			</div>
			<div class="status-message" style="display: none;"></div>
		</div>
		<div id="cntvlive2-is-installed"></div>
		<div class="goog-te-spinner-pos">
			<div class="goog-te-spinner-animation"><svg xmlns="http://www.w3.org/2000/svg" class="goog-te-spinner" width="96px"
				 height="96px" viewBox="0 0 66 66">
					<circle class="goog-te-spinner-path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
				</svg></div>
		</div>
	</body>
</html>
